dependencies与dependencyManagement的区别

       最近再看项目的时候,无意间注意到项目中的pom文件既有dependencyManagement,也有dependencies,有点疑惑为什么要同时有这两个标签,可能之前没太注意过吧。

       dependencies与dependencyManagement的区别
              a,dependencies标签 在父项目中定义的所有依赖,都是直接引入使用的,并且子项目中也有自动的继承此依赖。
              b,dependencyManagement标签 在父项目中定义的依赖,不会直接引入使用的,只有当子项目中也引入了此依赖了,父项目中才会真实的引入使用此依赖,并且子项目默认是不会继承dependencyManagement标签定义的依赖的。
       总结:dependencies 即直接导入依赖,并且子项目继承此依赖;dependencyManagement 只是定义了依赖,并未导入使用依赖,子项目默认不继承此依赖。

       父项目:
在这里插入图片描述

       上图是父项目的pom文件,可以看到dependencies标签定义的依赖,右侧就出现了,说明项目是直接导入使用的,而dependencyManagement标签定义的依赖,右侧是没有出现的。

       子项目:
在这里插入图片描述

       可以看到子项目中默认继承了hutool依赖。

       下面再来尝试一种情况,在子项目中手动定义 hibernate-validator 依赖,但是不写版本号,会怎么样
在这里插入图片描述

       可以看到,即使我子项目中定义了hibernate-validator依赖没有写版本号,实际上导入此依赖时,指定了版本号,而且这个版本号是和父项目中dependencyManagement 标签定义的依赖版本号是一样的,这就说明了,dependencyManagement 标签是一个依赖的版本管理器,可以控制子项目中的所有依赖的版本,但是如果子项目要是指定了版本,那就以子项目为主了。
       
       
       
       
       

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦梦~~

你的鼓励是对我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值