博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Maven学习总结(五)——聚合与继承
阅读量:6720 次
发布时间:2019-06-25

本文共 6687 字,大约阅读时间需要 22 分钟。

hot3.png

Maven学习总结(五)——聚合与继承

一、聚合

  如果我们想一次构建多个项目模块,那我们就需要对多个项目模块进行聚合

1.1、聚合配置代码

1 
2
模块一
3
模块二
4
模块三
5

  例如:对项目的Hello、HelloFriend、MakeFriends这三个模块进行聚合

1 
2
../Hello
3
../HelloFriend
4
../MakeFriends
5

  其中module的路径为相对路径。

二、继承

  继承为了消除重复,我们把很多相同的配置提取出来,例如:grouptId,version等

2.1、继承配置代码

1 
2
me.gacl.maven
3
ParentProject
4
0.0.1-SNAPSHOT
5
../ParentProject/pom.xml
6

2.2、继承代码中定义属性

  继承代码过程中,可以定义属性,例如:

1 
2
UTF-8
3
4.9
4
0.0.1-SNAPSHOT
5

  访问属性的方式为${junit.version},例如:

1 
2
junit
3
junit
4
${junit.version}
5
test
6

2.3、父模块用dependencyManagement进行管理

复制代码
1 
2
3
4
junit
5
junit
6
${junit.version}
7
test
8
9
10
cn.itcast.maven
11
HelloFriend
12
${maven.version}
13
jar
14
compile
15
16
17
复制代码

  这样的好处是子模块可以有选择行的继承,而不需要全部继承。

三、聚合与继承的关系

  聚合主要为了快速构建项目,继承主要为了消除重复

四、聚合与继承实战演练

  创建四个Maven项目,如下图所示:

   

  这四个项目放在同一个目录下,方便后面进行聚合和继承

  

  Parent项目是其它三个项目的父项目,主要是用来配置一些公共的配置,其它三个项目再通过继承的方式拥有Parent项目中的配置,首先配置Parent项目的pom.xml,添加对项目的Hello、HelloFriend、MakeFriends这三个模块进行聚合以及jar包依赖,pom.xml的配置信息如下:

  Parent项目的pom.xml配置

复制代码
1 
3
4.0.0
4 5
me.gacl.maven
6
Parent
7
0.0.1-SNAPSHOT
8
pom
9 10
Parent
11
http://maven.apache.org
12 13
14
15
../Hello
16
../HelloFriend
17
../MakeFriends
18
19 20
21
22
UTF-8
23
4.9
24
0.0.1-SNAPSHOT
25
26 27
28
29
30
31
32
junit
33
junit
34
35
${junit.version}
36
test
37
38
39
me.gacl.maven
40
Hello
41
42
${maven.version}
43
compile
44
45
46
me.gacl.maven
47
HelloFriend
48
49
${maven.version}
50
51
52
53
复制代码

  在Hello项目的pom.xml中继承Parent项目的pom.xml配置

复制代码
1 
3 4
4.0.0
5
Hello
6 7
8
9
me.gacl.maven
10
Parent
11
0.0.1-SNAPSHOT
12
13
../Parent/pom.xml
14
15 16
17
18
junit
19
junit
20
21
22
复制代码

  在HelloFriend项目的pom.xml中继承Parent项目的pom.xml配置

复制代码
1 
3
4.0.0
4
HelloFriend
5
HelloFriend
6 7
8
9
me.gacl.maven
10
Parent
11
0.0.1-SNAPSHOT
12
../Parent/pom.xml
13
14
15
16
18
junit
19
junit
20
21
25
26
me.gacl.maven
27
Hello
28
29
30
复制代码

  在MakeFriends项目的pom.xml中继承Parent项目的pom.xml配置

复制代码
1 
3
4.0.0
4
MakeFriends
5
6
7
me.gacl.maven
8
Parent
9
0.0.1-SNAPSHOT
10
../Parent/pom.xml
11
12
13
14
16
junit
17
junit
18
19
20
24
me.gacl.maven
25
HelloFriend
26
27
28
复制代码

  以上的四个项目的pom.xml经过这样的配置之后,就完成了在Parent项目中聚合Hello、HelloFriend、MakeFriends这三个子项目(子模块),而Hello、HelloFriend、MakeFriends这三个子项目(子模块)也继承了Parent项目中的公共配置,这样就可以使用Maven一次性构建所有的项目了,如下图所示:

  

  选中Parent项目的pom.xml文件→【Run As】→【Maven install】,这样Maven就会一次性同时构建Parent、Hello、HelloFriend、MakeFriends这四个项目,如下图所示:

  

转载于:https://my.oschina.net/zhanghaiyang/blog/597627

你可能感兴趣的文章
Fast-FrameWork v0.1.1,JDK 8 MVC 框架
查看>>
《IP组播(第1卷)》一导读
查看>>
《高效能程序员的修炼》一学会读源代码
查看>>
3大军团、266个项目,菜鸟技术如何玩转双11项目管理?
查看>>
魅族隔空回应雷军:开放 Flyme 对抗 MIUI
查看>>
成为阿里云大使的笔记
查看>>
《深入解析IPv6(第3版)》——2.10 参考文献
查看>>
《Adobe Illustrator CC经典教程》—第0课0.16节使用文字
查看>>
企业安全:从触觉时代到视觉时代
查看>>
Oracle Dataguard在阿里云ecs上的测试
查看>>
《Python数据科学实践指南》——0.3 为什么是Python
查看>>
《混合云计算》——2.4 检查云集成的需求
查看>>
《Axure RP8产品原型设计快速上手指南》一1.7 大纲面板
查看>>
《机器学习与R语言(原书第2版)》一第3章 懒惰学习——使用近邻分类
查看>>
《Python游戏编程快速上手》——2.4 本章小结
查看>>
《配置管理最佳实践》——2.13 结论
查看>>
《Python金融大数据分析》一导读
查看>>
数据挖掘与数据化运营实战. 3.3 运营群体的活跃度定义
查看>>
Storm-源码分析- hook (backtype.storm.hooks)
查看>>
BTrace使用简介
查看>>