创建多模块项目
本文使用命令行进行演示,当然使用 Idea 也是可以的。
- 1.创建父级项目
- 2.创建子模块
- 3.项目打包
- 4.父级项目管理依赖
- 5.更新子模块并构建
1. 创建父级项目
> mvn archetype:generate -DgroupId=com.rootmodule -DartifactId=parent-project
成功创建父级项目后,打开父级目录中的pom.xml文件并将打包配置添加为pom:
<packaging>pom</packaging>
2. 创建子模块
> 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
执行后
- 1)将会自动在 parent-project 的 pom.xml 中,在 modules 标签部分中添加所有子模块:
<modules>
<module>module-1</module>
<module>module-2</module>
<module>module-3</module>
</modules>
- 2)将会自动在三个 子模块 的 pom.xml 中,在 parent 标签部分中添加父级模块:
<parent>
<artifactId>parent-project</artifactId>
<groupId>com.rootmodule</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
3. 项目打包
在父项目根目录下,执行:
> 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] ------------------------------------------------------------------------
4. 父级项目管理依赖
在父级项目的pom.xml中设置依赖版本配置
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.3.16</version>
</dependency>
//...
</dependencies>
</dependencyManagement>
在子模块的pom.xml中,只需要依赖此模块,而无需设置依赖包版本号
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
</dependency>
//...
</dependencies>
当然父级项目 pom.xml 还有许多配置项供你使用,以便于进行一个以来包的版本统一管理
5.更新子模块并构建
现在我们开发的多半是web应用,那么你可以这样设置子模块的pom.xml
,指定其打包方式:
<packaging>war</packaging>
并在子模块的pom.xml
中插件列表标签中添加 maven-war-plugin :
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.3.2</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</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]
————————————————
------ 如果文章对你有用,感谢右上角 >>>点赞 | 收藏 <<<