Maven聚合⼯程
1 Maven
聚合⼯程概念
Maven
聚合⼯程:就是可以在⼀个
Maven
⽗⼯程中创建多个组件
(
项⽬
)
,这个多个组件
之间可以相互依赖,实现组件的复⽤
![](https://i-blog.csdnimg.cn/blog_migrate/d95965b5b1e217708b8ef13095711354.png)
2
创建
Maven
聚合⼯程
2.1
创建
Maven
⽗⼯程
Maven
聚合⼯程的⽗⼯程
packing
必须为
pom
创建⼀个
Maven
⼯程
修改⽗⼯程的
pom.xml
,设置打包⽅式为
pom
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.qfedu</groupId>
<artifactId>maven-parent</artifactId>
<version>1.0.0</version>
<packaging>pom</packaging>
</project>
⽗⼯程⽤于管理⼦⼯程,不进⾏业务实现,因此
src
⽬录可以选择性删除
2.2
创建
Module
选择⽗⼯程
---
右键
---New---Module
输⼊⼦⼯程名称(
g
和
v
都从⽗⼯程继承)
⼦⼯程的
pom
⽂件:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<!--module的pom继承 ⽗⼯程的pom-->
<parent>
<artifactId>maven-parent</artifactId>
<groupId>com.qfedu</groupId>
<version>1.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>common</artifactId>
</project>
⽗⼯程的
pom
⽂件:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.qfedu</groupId>
<artifactId>maven-parent</artifactId>
<version>1.0.0</version>
<!-- 声明当前⽗⼯程的⼦module -->
<modules>
<module>common</module>
</modules>
<packaging>pom</packaging>
</project>
3 Maven
聚合⼯程依赖继承
3.1
依赖继承
在⽗⼯程的
pom
⽂件添加的依赖,会被⼦⼯程继承
![](https://i-blog.csdnimg.cn/blog_migrate/128deff882d049d48cc6f74936ee2586.png)
3.2
依赖版本管理
在⽗⼯程的
pom.xml
的
dependencyManagement
中添加依赖,表示定义⼦⼯程中此依
赖的默认版本(此定义并不会让⼦⼯程中添加当前依赖)
<!-- 依赖管理:在dependencyManagement中添加依赖,表示定义⼦⼯程中此依赖的默认版
本 -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.6.1</version>
</dependency>
</dependencies>
</dependencyManagement>