Maven学习总结(五)——聚合与继承
一、聚合
如果我们想一次构建多个项目模块,那我们就需要对多个项目模块进行聚合
1.1、聚合配置代码
12 模块一 3模块二 4模块三 5
例如:对项目的Hello、HelloFriend、MakeFriends这三个模块进行聚合
12 ../Hello 3../HelloFriend 4../MakeFriends 5
其中module的路径为相对路径。
二、继承
继承为了消除重复,我们把很多相同的配置提取出来,例如:grouptId,version等
2.1、继承配置代码
12 me.gacl.maven 3ParentProject 40.0.1-SNAPSHOT 5../ParentProject/pom.xml 6
2.2、继承代码中定义属性
继承代码过程中,可以定义属性,例如:
12 UTF-8 34.9 40.0.1-SNAPSHOT 5
访问属性的方式为${junit.version},例如:
12 junit 3junit 4${junit.version} 5test 6
2.3、父模块用dependencyManagement进行管理
12 3 174 9junit 5junit 6${junit.version} 7test 810 16cn.itcast.maven 11HelloFriend 12${maven.version} 13jar 14compile 15
这样的好处是子模块可以有选择行的继承,而不需要全部继承。
三、聚合与继承的关系
聚合主要为了快速构建项目,继承主要为了消除重复
四、聚合与继承实战演练
创建四个Maven项目,如下图所示:
这四个项目放在同一个目录下,方便后面进行聚合和继承
Parent项目是其它三个项目的父项目,主要是用来配置一些公共的配置,其它三个项目再通过继承的方式拥有Parent项目中的配置,首先配置Parent项目的pom.xml,添加对项目的Hello、HelloFriend、MakeFriends这三个模块进行聚合以及jar包依赖,pom.xml的配置信息如下:
Parent项目的pom.xml配置
13 4.0.0 4 5me.gacl.maven 6Parent 70.0.1-SNAPSHOT 8pom 9 10Parent 11http://maven.apache.org 12 13 1415 19 20 21../Hello 16../HelloFriend 17../MakeFriends 1822 26 27 28UTF-8 234.9 240.0.1-SNAPSHOT 2529 30 5331 5232 38junit 33junit 34 35${junit.version} 36test 3739 45me.gacl.maven 40Hello 41 42${maven.version} 43compile 4446 51me.gacl.maven 47HelloFriend 48 49${maven.version} 50
在Hello项目的pom.xml中继承Parent项目的pom.xml配置
13 4 4.0.0 5Hello 6 7 89 15 16me.gacl.maven 10Parent 110.0.1-SNAPSHOT 12 13../Parent/pom.xml 1417 2218 21junit 19junit 20
在HelloFriend项目的pom.xml中继承Parent项目的pom.xml配置
13 4.0.0 4HelloFriend 5HelloFriend 6 7 89 14me.gacl.maven 10Parent 110.0.1-SNAPSHOT 12../Parent/pom.xml 1315 3016 18 21 25junit 19junit 2026 29me.gacl.maven 27Hello 28
在MakeFriends项目的pom.xml中继承Parent项目的pom.xml配置
13 4.0.0 4MakeFriends 5 67 12me.gacl.maven 8Parent 90.0.1-SNAPSHOT 10../Parent/pom.xml 1113 2814 16 19junit 17junit 1820 24 27me.gacl.maven 25HelloFriend 26
以上的四个项目的pom.xml经过这样的配置之后,就完成了在Parent项目中聚合Hello、HelloFriend、MakeFriends这三个子项目(子模块),而Hello、HelloFriend、MakeFriends这三个子项目(子模块)也继承了Parent项目中的公共配置,这样就可以使用Maven一次性构建所有的项目了,如下图所示:
选中Parent项目的pom.xml文件→【Run As】→【Maven install】,这样Maven就会一次性同时构建Parent、Hello、HelloFriend、MakeFriends这四个项目,如下图所示: