本文使用命令行进行演示,当然使用 Idea 也是可以的。
> mvn archetype:generate -DgroupId=com.rootmodule -DartifactId=parent-project
成功创建父级项目后,打开父级目录中的pom.xml文件并将打包配置添加为pom:
<packaging>pompackaging>
> cd parent-project
> mvn archetype:generate -DgroupId=com.rootmodule -DartifactId=module-1
> mvn archetype:generate -DgroupId=com.rootmodule -DartifactId=module-2
> mvn archetype:generate -DgroupId=com.rootmodule -DartifactId=module-3
执行后
<modules>
<module>module-1module>
<module>module-2module>
<module>module-3module>
modules>
<parent>
<artifactId>parent-projectartifactId>
<groupId>com.rootmodulegroupId>
<version>1.0-SNAPSHOTversion>
parent>
在父项目根目录下,执行:
> mvn package
···
构建完成后,将产生三个单独的jar包。
```bash
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO] parent-project [pom]
[INFO] module-1 [jar]
[INFO] module-2 [jar]
[INFO] module-3 [war]
...
[INFO] Reactor Summary for parent-project 1.0-SNAPSHOT:
[INFO] parent-project ..................................... SUCCESS [ 0.272 s]
[INFO] module-1 ............................................... SUCCESS [ 2.043 s]
[INFO] module-2 ............................................ SUCCESS [ 0.627 s]
[INFO] module-3 ............................................. SUCCESS [ 0.572 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
在父级项目的pom.xml中设置依赖版本配置
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-coreartifactId>
<version>5.3.16version>
dependency>
//...
dependencies>
dependencyManagement>
在子模块的pom.xml中,只需要依赖此模块,而无需设置依赖包版本号
<dependencies>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-coreartifactId>
dependency>
//...
dependencies>
当然父级项目 pom.xml 还有许多配置项供你使用,以便于进行一个以来包的版本统一管理
现在我们开发的多半是web应用,那么你可以这样设置子模块的pom.xml,指定其打包方式:
<packaging>warpackaging>
并在子模块的pom.xml中插件列表标签中添加 maven-war-plugin :
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-war-pluginartifactId>
<version>3.3.2version>
<configuration>
<failOnMissingWebXml>falsefailOnMissingWebXml>
configuration>
plugin>
plugins>
build>
依然是在父项目根目录下,执行打包指令:
mvn clean install
构建完成后,将生成2个jar包和1个war包
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO]
[INFO] parent-project [pom]
[INFO] module-1 [jar]
[INFO] module-2 [jar]
[INFO] module-3 [war]
//.............
[INFO] Reactor Summary for parent-project 1.0-SNAPSHOT:
[INFO]
[INFO] parent-project ..................................... SUCCESS [ 0.272 s]
[INFO] module-1 ............................................... SUCCESS [ 2.043 s]
[INFO] module-2 ............................................ SUCCESS [ 0.627 s]
[INFO] module-3 ............................................. SUCCESS [ 1.047 s]
————————————————

------ 如果文章对你有用,感谢右上角 >>>点赞 | 收藏 <<<