在 Eclipse IDE 中创建多模块 Maven 项目

在本教程中,我想与大家分享如何在 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文件中,如下所示:

<project ...>
     
    [...]
     
    <groupId>com.mycompany</groupId>
    <artifactId>CompanyProject</artifactId>
    <packaging>pom</packaging>
    <version>0.0.1-SNAPSHOT</version>
    <description>Root Maven project</description>
     
    <modules>
        <module>SharedLibrary</module>
    </modules>
 
    [...]   
 
</project>

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

<project ...>
 
    <parent>
        <artifactId>CompanyProject</artifactId>
        <groupId>com.mycompany</groupId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
 
    <artifactId>SharedLibrary</artifactId>
 
    [...]
     
</project>

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

package com.mycompany;
 
public class CommonUtility {
 
    public static String getAppName() {
        return "My Company App Beta version";
    }
}

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


3.创建第二个Maven模块

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

<project ...>
    [..]
 
    <artifactId>ConsoleApp</artifactId>
 
    <dependencies>
        <dependency>
            <groupId>com.mycompany</groupId>
            <artifactId>SharedLibrary</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
    </dependencies>
 
    [..]
 
</project>

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

package com.mycompany;
 
public class ConsoleApp {
 
    public static void main(String[] args) {
        String appName = CommonUtility.getAppName();
        System.out.println("Welcome to " + appName);
    }
}

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


4.创建第三个Maven模块

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

<project ...>
 
    <groupId>com.mycompany</groupId>
    <artifactId>CompanyProject</artifactId>
    <packaging>pom</packaging>
    <version>0.0.1-SNAPSHOT</version>
     
    <modules>
        <module>SharedLibrary</module>
        <module>ConsoleApp</module>
        <module>DesktopApp</module>
    </modules>
 
    [...]
 
</project>

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

package com.mycompany;
 
import javax.swing.*;
import java.awt.*;
 
public class DesktopApp extends JFrame {
    static String appName = CommonUtility.getAppName();
 
    public DesktopApp() {
        super(appName);
        init();
    }
 
    private void init() {
        setLayout(new FlowLayout());
        add(new JLabel("Welcome to " + appName));
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setSize(640, 480);
        setLocationRelativeTo(null);
    }
 
    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                new DesktopApp().setVisible(true);
            }
        });
    }
}

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


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

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

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

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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值