如何理解Maven的聚合和继承
一、创建 run-root 项目
1、步骤略 , clipse中创建maven pom工程
2、格式如下:
二、创建 run-commons 项目
1、一个普通的java项目,步骤略。
2、如下:
三、配置聚合
1、在 run-root 项目的pom.xml中,添加modules标签,取值为 run-commons 项目的artifactId 。
<!-- 使用 modules 标签管理 -->
<!-- 被聚合模块的 artifactId -->
<modules>
<module>run-commons</module>
</modules>
四、配置继承
1、在 run-commoins项目的pom.xml ,添加 parent 标签, 取值为 run-root项目的 groupId 、artifactId 、 version 。
<!-- parent 标签继承 -->
<parent>
<groupId>com.runcode</groupId>
<artifactId>run-root</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
2、去掉 run-commoins 项目中的 groupId 和 artifactId ,因为使用父类的。
3、测试继承: 调整run-root 项目的 commons.lang3.version 版本号,观察继承项目run-commoins 的依赖变化情况。
<!-- 统一管理jar包,需要继承该pom 才可以 -->
<properties>
<commons.lang3.version>3.3</commons.lang3.version>
</properties>
4、测试聚合:在run-root 项目中,进行 clean , install 操作,观察 run-commoins 项目target目录的变化情况。
5、在run-root 项目中,使用 <dependencyManagement> 标签,可以锁定子项目引用pom版本, 既子项目不需要使用 <version> 标签。 (示例引用: commons-fileupload )
五、总结
1、继承和聚合,相互独立,二者没有关联; 通常是组合使用的。
2、继承是在子项目中操作,使用 parent 标签,标记xx项目为父项目。
3、聚合是在pom项目中操作,使用 modules 标签,将xx项目标记为需要聚合的项目。
4、聚合是将多个模块的工程汇聚到一起,而继承则是指明某个模块工程要继承另一个模块功能。
概念学习:Maven中聚合和继承的区别