四、Maven继承和聚合特性
4.1Maven工程继承关系
1.继承概念
Maven继承是指在Maven的项目中,让一个项目从另一个项目中继承配置信息的机制。继承可以让我们在一个项目中共享同一配置信息,简化目的管理和维护工作。
2.继承的作用
在父工程中统一管理项目中的依赖信息.进行统一版本管理!
(1)它的背景是:
- ·对一个比较大型的项目进行了模块拆分.
- ·一个project下面,创建了很多个module.
- ·每一个module都需要配置自己的依赖信息。
(2)它背后的需求是:
- ·多个模块要使用同一个框架,它们应该是同一个版本,所以整个项目中使用的框架版本需要统一管理。
- ·使用框架时所需要的jar包组合(或者说依赖信息组合)需要经过长期探索 和反复调试,最终确定一个可用组合。这个耗费很大精力总结出来的方案不应该在新的项目中重新摸索。
通过在父工程中为整个项目维护依赖信息的组合既保证了整个项目使用规范、准确的jar包;又能够将以往的经验沉淀下来,节约时间和精力。
3.继承语法
(1)因为父工程要管理子工程需将父工程的打包方式修改为pom
<packaging>pom</packaging>
(2)直接在父工程下新建模块,此模块即为子工程
- ·子工程的gv属性也继承父工程,但也可以自己定义
·<dependencies></dependencies>为导入依赖,父工程的依赖,子工程也会全部导入
·<dependencyManagement></dependencyManagement>为声明依赖信息,在此标签下的<dependencies></dependencies>不会下载依赖,可以被子工程继承,在子工程中,若要导入依赖可以不用声明版本号,但若在子工程中定义版本号,会覆盖从父工程继承的版本号
父工程pom文件中声明依赖:
子工程pom文件导入依赖:
4.2Maven工程聚合关系
1.聚合概念
Maven聚合是指将多个项目组织到一个父级项目中,通过触发父工程的构建,统一按顺序触发子工程构建的过程!
2.作用
1)统一管理子项目构建:通过聚合,可以将多个子项目组织在-起,方便管理和维护。
2)优化构建顺序:通过聚合,可以对多个项目进行顺序控制,避免出现构建依赖混乱导致构建失败的情况。
3.聚合语法
父项目中包含的子项目列表:
若将子工程的模块删除,则该子工程不具有聚合功能,一般情况下,聚合与继承同时存在
4.聚合演示
通过触发父工程构建命令、引发所有子模块构建!产生反应堆!
4.3区分继承与聚合
继承体现在子工程中用<parent></parent>标签指定父工程,
聚合体现在父工程中,用<modules><modules>标签指定要聚合管理的子工程