第二节 聚合
一、为什么需要聚合
二、如何实现聚合
三、测试聚合
第二节 聚合
一、为什么需要聚合
使用继承后,需要手动逐个安装到仓库后依赖才能够生效。修改源码后也需要逐个手动进行clean、compile操作。而使用了聚合之后就可以批量进行Maven工程的安装、清理工作。
聚合关系是指多个项目共同组成一个项目。 用一个“总工程”将各个“模块工程”汇集起来,作为一个整体对应完整的项目。对外看起来是一个项目。
父项目和子项目在形式上不是并列关系,而是包含和被包含的关系。
必须先有继承关系。在聚合工程中, 是一个双向的关系。父项目是整体,子项目是部分。
二、如何实现聚合
创建四个Maven项目,分别为父项目:pro06_myshopping,三个模块:product,payment,order,如上图所示:
注意:创建三个模块时要在父项目上单击右键选择new—-module,创建出来的子项目在父项目内部,对外以父项目作为一个整体提供。
父项目:
子项目:
子项目如和父项目的groupId、version一致,则只需要指定artifactId即可
三、测试聚合
- 在聚合关系中, 子项目明确父项目, 但是父项目明确子项目,是双向关系
- 聚合关系其实是一个大项目包含多个子项目,对父项目进行clear、compile、install等命令,是对所有子项目进行clear、compile、install命令。但是如果对一个子项目进行maven操作,不影响其他子项目。
- 聚合Maven项目间的继承是pom资源间的继承,不是项目功能代码的继承
- 子项目可以继承父项目的资源(父项目POM文件中资源),即使test、provided资源也可以继承
- 子项目无法继承父项目自身资源,所以父项目不进行java代码开发
- 和继承一样,可以在父项目中通过dependencyManagement来管理依赖
- 聚合的目的是能够快速的构建项目,继承的目的是减少重复配置。
概念的对应关系:
从继承关系角度来看:
- 父工程
- 子工程
从聚合关系角度来看:
- 总工程
- 模块工程