在 Ecliphotoshope IDE 创建多模块 Maven 项目
在本教程中,我想与大家分享如何在 Eclipse IDE 中创建多模块 Maven 项目。有一个非常常见的开发场景,我们需要开发一个包含一些模块的应用程序,如下图所示:
你看,这个应用程序有一些在控制台程序和桌面程序之间共享的通用代码。构建为 Maven 项目,它将包含 3 个模块:共享库、控制台应用程序和桌面应用程序。每个模块都是一个单独的项目。
下图解释了一个包含多个模块的 Maven 项目结构:
这里, CompanyProject 是根 Maven 项目(打包类型必须是pom)。SharedLibrary 项目是第一个模块;ConsoleApp 项目是第二个模块;DesktopApp 是第三个模块。模块的打包类型可以是jar或war。
现在,让我们看看如何在 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 项目的方法。
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhhacjjc
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13