项目管理工具——Maven学习笔记(十二、Maven聚合和继承特性)

什么是Maven聚合特性?
能够把项目的各个模块聚合在一起构建,这种方式就是聚合。不用我们手动依次install各个模块了,提高工作效率。

现在呢,就把我们之前的【maventest-a】、【maventest-b】、【maventest-c】进行聚合。打开Eclipse,创建新项目【maventest-aggregation】。
打开并编辑【maventest-aggregation】的pom.xml:

  1. 将<package>标签值改为pom,作为聚合项目的容器,则必须pom;
  2. 增加<models>标签,将子项【maventest-a】、【maventest-b】、【maventest-c】依次添加。
    如图:

Paste_Image.png

保存,并【Run As】→【Maven Build】,输入命令:clean install

Paste_Image.png

 

运行之后,它会依次将a、b、c打包安装到本地仓库。

Paste_Image.png

这就是聚合了,那么……

什么是Maven的继承特性呢?
能够帮助抽取各模块相同的依赖和插件等配置,在简化 pom 配置的同时,还能促进各个模块配置的一致性。

例如,我们的【maventest-a】、【maventest-b】、【maventest-c】项目都在pom引入了junit依赖。这就导致我们项目很冗余。那怎么办呢?这时就需要用到继承特性,创建项目父模块【maventest-parent】。

在【maventest-parent】的pom.xml中添加<dependencyManagement>标签。这个标签在pom.xml常用元素中讲到过。

Paste_Image.png

添加好后,就是这样的:

Paste_Image.png

为了防止以后pom.xml变庞大,版本号不易找到和修改,可以将junit的version的值,单独提出来到<properties>标签里,并使用EL表达式引用。

Paste_Image.png

然后将<package>值改为pom,作为父模块这个值必须为pom。又因为是父模块,一般是不在main和test里写代码的,这两个目录,都可以删除。
最后【maventest-parent】的pom.xml:

Paste_Image.png

左侧目录结构:

 

Paste_Image.png

父模块完成,打开子模块。以【maventest-a】为例:

  1. 在它的pom中增加<parent>标签并把【maventest-parent】的坐标添加进去。
  2. 将junit依赖的版本号和依赖范围删掉,保留<groupId>和<artifactId>。这是因为,父模块虽然引入了junit,但是还需要子模块声明<groupId>和<artifactId>才可以使用。
    如图:

Paste_Image.png

Paste_Image.png



作者:鲁克巴克诗
链接:https://www.jianshu.com/p/d0c6e731ca46
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值