一、聚合
如果我们想一次构建多个项目模块,那我们就需要对多个项目模块进行聚合
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 31 32 38junit 33junit 34 35${junit.version} 36test 3739 45me.gacl.maven 40Hello 41 42${maven.version} 43compile 4446 me.gacl.maven 47HelloFriend