聚合——指的是将多个模块组织成一个整体,同时进行项目构建的过程
聚合使用的作用:用于统一管理用于合作工作的多个模块,方便排错和同步数据,构建时只需要对聚合工程进行构建即可(同时操作、统一管理)
聚合的含义:分模块中的多个模块(合作工作的多个模块)都聚合到某一个模块同步执行
![](https://i-blog.csdnimg.cn/blog_migrate/38b59cbb9a01a3e132e56ffb4585821a.png)
聚合的配置步骤:
将父文件的打包方式<packaging>设置为pom打包方式(将工程设置成聚合工程),他将默认为一个根目录模块
在pom文件中添加<modules>里面每个<module>添加一个模块路径即可(设置需要管理的模块)。
<!-- 设置打包方式-->
<packaging>pom</packaging>
<!-- 设置管理的模块名称-->
<modules>
<module>../Maven_02_ssm</module>
<module>../Maven_03_pojo</module>
<module>../Maven_04_dao</module>
</modules>
注:在编译是会根据模块的依赖关系以及顺序执行,而不是写入的顺序
*聚合存在的问题:每个模块都具有重复依赖,可以搭配继承一起使用
继承——顾名思义就是子工程可以继承父工程中的配置,常见于依赖关系的继承
继承的作用:简化配置、减少版本冲突
继承的含义:当聚合工程的多个子工程都需要用到某些依赖,可以直接写到聚合工程(父工程)中,供子工程继承使用(简化配置),假如父工程修改版本,则所有继承的子工程刷新后全部自动修改版本(减少版本冲突)。
![](https://i-blog.csdnimg.cn/blog_migrate/dba608179279feeea8fcb6d4ba278bcb.png)
继承的配置:在子工程中添加<parent>标签,里面添加父工程的坐标以及它的<relativePath>路径(寻找到pom.xml文件)
注:<relativePath>路径不写也可用,作用是为了帮助定位位置所用
<parent>
<!-- 直接复制父文件的坐标即可-->
<groupId>com.heima</groupId>
<artifactId>Maven_01_parent</artifactId>
<version>1.0-SNAPSHOT</version>
<!-- 文件的绝对路径-->
<relativePath>../Maven_01_parent/pom.xml</relativePath>
</parent>
继承定义依赖管理:
在父工程的pom.xml文件中添加<dependencyManagement>里面添加需要进行管理的依赖(可选配置),假如子工程需要则直接添加(无需书写版本)即可,版本根据父工程自动统一提供
*注:依赖管理中的依赖不同于被父工程中添加的依赖,直接添加的依赖会被直接继承,而依赖管理中的则是可选依赖,需要手动添加,一般继承是在聚合的基础之上(打包方式也为pom)
<!-- 定义依赖管理-->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
</dependencyManagement>