如何创建一个多模块的Maven项目
找了许久竟然发现没有现成的生成多模块Maven项目的方法,难怪好多人要写脚手架了。全新搭建一个新的工程还是有一些工作量的,这里先把创建多模块的Maven项目的方法记录下。
什么是多模块的Maven项目
什么是多模块的Maven项目就不细说了。一句话,多模块的Maven项目有一个特点是,位于项目根目录的主POM文件的packaging类型是pom,并且包含多个module。POM文件类似如下:
<project>
......
<packaging>pom</packaging>
......
<modules>
<module>module1</module>
<module>module2</module>
</modules>
</project>
项目下的每一个模块都是普通的Maven项目,并且可以独立打包,当然也可以通过主POM打包。
多模块的Maven项目有什么好处
降低重复,多个子模块重用依赖与配置,并且可以实现一键打包多个子模块的操作。
如何创建多模块的Maven项目
我们将创建一个包含两个子模块的Maven项目,假设groupId=com.test,主子工程的artifactId分别为test-project,test-project-service,
test-project-web。使用时你可以改成你自己的名称。
首先生成主项目,在命令行执行如下命令:
mvn archetype:generate \
-DarchetypeGroupId=org.codehaus.mojo.archetypes \
-DarchetypeArtifactId=pom-root \
-DarchetypeVersion=RELEASE \
-DgroupId=com.test \
-DartifactId=test-project \
-Dversion=0.0.1-SNAPSHOT \
-DinteractiveMode=false
然后切换到生成的根目录下,在这个例子中是test-project目录。
接下来生成两个子模块,依次执行如下命令:
mvn archetype:generate \
-DgroupId=com.test \
-DartifactId=test-project-service \
-Dversion=0.0.1-SNAPSHOT \
-DinteractiveMode=false
mvn archetype:generate \
-DgroupId=com.test \
-DartifactId=test-project-web \
-Dversion=0.0.1-SNAPSHOT \
-DinteractiveMode=false
这两个命令会在根目录下生成2个子工程,并且在子工程的POM文件中指定了主项目作为他们的parent。同时也在主POM中添加这些子项目到modules元素下。
这样就完成了包含两个模块的Maven项目了,打开IDE,导入Maven工程即可。