maven聚合工程继承多个pom的dependencyManagement,理解其中dependency的<type>pom</type><scope>import</scope>

首先聚合工程的父工程,主要作用就是传递依赖dependency和统一依赖版本号dependencyManagement,当dependencyManagement中规定的依赖版本号越来越多的时候,就会造成pom文件过大,为了解决这个问题,我们一般会采用继承parent父工程的pom,但是parent只能继承一个,而且也可能会导致parent的pom过大,所以就有了继承多个dependencyManagement的解决方案。

1.首先我们定义一个父类的pom,用来统筹所有的子模块,切记groupId填写的报名,尽量不要是开源公众的,比如org.example,避免groupId跟artifactId跟开源的重合,导致出现不生效的bug,命名尽量不要使用通用关键字是一个好习惯。

2.我们将需要规定的依赖版本号,都分类好,依次创建对应的pom工程,然后将需要规定版本号的依赖,写入dependencyManagement,这里我们直接使用springboot的版本依赖pom,实际情况可以自己写多个pom。注意!!!!!这类pom项目,不能继承一个<parent>不然会导致dependencyManagement传递失效。

核心配置

<packaging>pom</packaging>
<version>${填写自己的版本号}</version>

<dependencyManagement>....</dependencyManagement>

3.创建一个子模块,用来将所有的版本号约束依赖的pom工程集中到一起(多继承)

项目中的dependencyManagement里,写入多个pom工程,通过<type>pom</type>

<scope>import</scope>2个标签,来继承pom工程中的dependencyManagement,写入多个则会将所有的dependencyManagement都聚合到一起了

4.将这个汇总的dependencies子工程,以同样的方式,再让最顶级的父工程继承,

注意!!!!<module>很重要,写上之后,当父工程添加新的打包类型为jar的子模块时,dependencyManagement中的版本号限制,才能传递过去。

之后所有的版本号限制,就都可以写到demo-dependencies这个子工程啦!!里面再通过分类,汇总多个pom就行。

5.测试,在顶级的父工程,添加一个子模块,打包类型为jar,测试依赖限制是否传递过去

进入demo-web子工程,可以看到,版本号已经传递过来,至此解决了版本号规定过多,导致pom过大没有分类问题。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值