一、聚合概念
Maven 聚合是指将多个项目组织到一个父级项目中,通过触发父工程的构建,统一按顺序触发子工程构建的过程!!
二、聚合作用
-
统一管理子项目构建:通过聚合,可以将多个子项目组织在一起,方便管理和维护。
-
优化构建顺序:通过聚合,可以对多个项目进行顺序控制,避免出现构建依赖混乱导致构建失败的情况。
例如
shop-order
中引入了shop-user
,此时shop-user
就需要比shop-order
先构建才行。
三、聚合语法
父项目中包含的子项目列表。
PS:继承和聚合是两个概念!只不过它俩不分家,因为你有了继承,就代表有多个子模块,此时就应该有聚合了。
<parent>
是继承,指的是导入父工程的依赖;聚合指的是在父工程中多了一个 <modules>
。
在创建子工程的时候默认就带继承和聚合(子工程一创建好,子工程中就会带 <parent>
,父工程就会多一个 <module>
,它俩一般不分家。
当然我们也可以只继承不聚合,删掉对应的 <module>
即可,此时使用父工程的生命周期,就不会携带删掉的子工程了。
<project>
<groupId>com.example</groupId>
<artifactId>parent-project</artifactId>
<packaging>pom</packaging>
<version>1.0.0</version>
<!-- 父工程中要统一管理子工程的artifactId, -->
<modules>
<module>child-project1</module>
<module>child-project2</module>
</modules>
</project>
四、聚合演示
通过触发父工程构建命令、引发所有子模块构建!产生反应堆!

五、继承和聚合总结
继承:指的是在父工程中统一声明版本信息,用 <dependencyManagement>
,它是一种依赖管理的版本简化。在子工程中使用 <parent>
指定当前工程的父工程。
聚合:指的是通过父工程统一构建子工程的过程,并且会优化顺序,它是构建管理的简化。在父工程中使用 <modules>
指定要聚合管理哪些子工程。
经常和聚合是两个功能对应的简化,一般情况下他们两个是同时存在的。