• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

在 Ecliphotoshope IDE 创建多模块 Maven 项目

武飞扬头像
allway2
帮助1

在本教程中,我想与大家分享如何在 Eclipse IDE 中创建多模块 Maven 项目。有一个非常常见的开发场景,我们需要开发一个包含一些模块的应用程序,如下图所示:

学新通

你看,这个应用程序有一些在控制台程序和桌面程序之间共享的通用代码。构建为 Maven 项目,它将包含 3 个模块:共享库、控制台应用程序和桌面应用程序。每个模块都是一个单独的项目。

下图解释了一个包含多个模块的 Maven 项目结构:

学新通

这里, CompanyProject 是根 Maven 项目(打包类型必须是pom)。SharedLibrary 项目是第一个模块;ConsoleApp 项目是第二个模块;DesktopApp 是第三个模块。模块的打包类型可以是jarwar

现在,让我们看看如何在 Eclipse IDE 中创建这个多模块 Maven 项目。

1.创建根Maven项目

在 Eclipse 中,单击File > New > Project...并从 New project 向导中选择Maven > Maven project :


 

学新通

在 New Maven Project 对话框中,选中 Create a simple project (skip archetype selection) 选项:

学新通

然后输入项目名称并指定 Maven 项目的信息,如下所示:

学新通

选择包装类型是 pom。单击完成。Eclipse 将创建一个简单的 Maven POM 项目,作为子模块的根项目。


2.创建第一个Maven模块

接下来,让我们为共享库项目创建第一个 Maven 模块。在 Package Explorer/Project Explorer 视图中右键单击 CompanyProject,然后从上下文菜单中选择New > Project...。然后在 New Project 对话框中选择 Maven Module:

学新通

然后在 New Maven Module Dialog 中,选中“Create a simple project”选项,并输入模块名称为 SharedLibrary,如下所示:

学新通

如果要为此模块指定项目信息,请单击下一步。否则单击完成以创建与根项目具有相同 groupId 的第一个模块。

您可以注意到一个新模块被添加到根项目的pom.xml文件中,如下所示:

  1.  
    <project ...>
  2.  
     
  3.  
    [...]
  4.  
     
  5.  
    <groupId>com.mycompany</groupId>
  6.  
    <artifactId>CompanyProject</artifactId>
  7.  
    <packaging>pom</packaging>
  8.  
    <version>0.0.1-SNAPSHOT</version>
  9.  
    <description>Root Maven project</description>
  10.  
     
  11.  
    <modules>
  12.  
    <module>SharedLibrary</module>
  13.  
    </modules>
  14.  
     
  15.  
    [...]
  16.  
     
  17.  
    </project>
学新通

这里,根项目的打包类型是pom。而在 SharedLibrary 项目中,其父信息指定如下:

  1.  
    <project ...>
  2.  
     
  3.  
    <parent>
  4.  
    <artifactId>CompanyProject</artifactId>
  5.  
    <groupId>com.mycompany</groupId>
  6.  
    <version>0.0.1-SNAPSHOT</version>
  7.  
    </parent>
  8.  
     
  9.  
    <artifactId>SharedLibrary</artifactId>
  10.  
     
  11.  
    [...]
  12.  
     
  13.  
    </project>

然后在 SharedLibrary 项目中编写一个简单的类,如下所示:

  1.  
    package com.mycompany;
  2.  
     
  3.  
    public class CommonUtility {
  4.  
     
  5.  
    public static String getAppName() {
  6.  
    return "My Company App Beta version";
  7.  
    }
  8.  
    }

控制台应用程序和桌面应用程序都将使用静态方法getAppName() 。


3.创建第二个Maven模块

同样,为 ConsoleApp 项目创建第二个 Maven 模块。而在 ConsoleApp 项目中,应该是引用了pom.xml文件中的 SharedLibrary 项目如下:

  1.  
    <project ...>
  2.  
    [..]
  3.  
     
  4.  
    <artifactId>ConsoleApp</artifactId>
  5.  
     
  6.  
    <dependencies>
  7.  
    <dependency>
  8.  
    <groupId>com.mycompany</groupId>
  9.  
    <artifactId>SharedLibrary</artifactId>
  10.  
    <version>0.0.1-SNAPSHOT</version>
  11.  
    </dependency>
  12.  
    </dependencies>
  13.  
     
  14.  
    [..]
  15.  
     
  16.  
    </project>
学新通

并编写简单的控制台程序如下:

  1.  
    package com.mycompany;
  2.  
     
  3.  
    public class ConsoleApp {
  4.  
     
  5.  
    public static void main(String[] args) {
  6.  
    String appName = CommonUtility.getAppName();
  7.  
    System.out.println("Welcome to " appName);
  8.  
    }
  9.  
    }

你看,这个类使用了 SharedLibrary 项目中的 CommonUtility 类。 


4.创建第三个Maven模块

接下来,让我们为 DesktopApp 项目创建第三个 Maven 模块。根项目的pom.xml应更新为包含 3 个模块,如下所示:

  1.  
    <project ...>
  2.  
     
  3.  
    <groupId>com.mycompany</groupId>
  4.  
    <artifactId>CompanyProject</artifactId>
  5.  
    <packaging>pom</packaging>
  6.  
    <version>0.0.1-SNAPSHOT</version>
  7.  
     
  8.  
    <modules>
  9.  
    <module>SharedLibrary</module>
  10.  
    <module>ConsoleApp</module>
  11.  
    <module>DesktopApp</module>
  12.  
    </modules>
  13.  
     
  14.  
    [...]
  15.  
     
  16.  
    </project>
学新通

出于演示目的,使用以下代码为桌面程序编写一个简单的 Swing 程序:

  1.  
    package com.mycompany;
  2.  
     
  3.  
    import javax.swing.*;
  4.  
    import java.awt.*;
  5.  
     
  6.  
    public class DesktopApp extends JFrame {
  7.  
    static String appName = CommonUtility.getAppName();
  8.  
     
  9.  
    public DesktopApp() {
  10.  
    super(appName);
  11.  
    init();
  12.  
    }
  13.  
     
  14.  
    private void init() {
  15.  
    setLayout(new FlowLayout());
  16.  
    add(new JLabel("Welcome to " appName));
  17.  
    setDefaultCloseOperation(EXIT_ON_CLOSE);
  18.  
    setSize(640, 480);
  19.  
    setLocationRelativeTo(null);
  20.  
    }
  21.  
     
  22.  
    public static void main(String[] args) {
  23.  
    SwingUtilities.invokeLater(new Runnable() {
  24.  
    @Override
  25.  
    public void run() {
  26.  
    new DesktopApp().setVisible(true);
  27.  
    }
  28.  
    });
  29.  
    }
  30.  
    }
学新通

你看,这个类还使用了 SharedLibrary 项目中的 CommonUtility 类。 


5. 在 Eclipse IDE 中构建一个 Multi-Module Maven 项目

要在 Eclipse 中构建整个多模块 Maven 项目,请右键单击根项目,然后选择Run As > Maven install... Maven 将构建这个包含子模块的多模块项目,如下所示:

学新通

现在您可以检查每个项目中的目标目录。Maven 应该已经为那里的每个项目生成了 jar 文件。

这就是在 Eclipse IDE 中创建多模块 Maven 项目的方法。

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhhacjjc
系列文章
更多 icon
同类精品
更多 icon
继续加载