11-Maven: Maven依赖传递, 以及传递失效问题以及Scope用法

依赖关系 :依赖多个项目,这些项目中有相同jar包,但版本不同,那选择哪个呢?

现在有三个项目:Hello, HelloFriend, MakeFriend,

在Hello,HelloFriend分别引入了不同版本的log4j-1.2.9.jar,log4j-1.2.17.jar,

三个项目关系是HelloFriend依赖了Hello,MakeFriend依赖了HelloFriend;



Maven依赖关系有冲突时,采用原则:

1. 路径 最近者 优先:

如:HelloFriend离MakeFriend最近,就采用HelloFriend中的jar

2.    路径相同,第一声明者优先

如:Hello比HelloFriend前生明,就采用HelloFriend中的jar



注:但是在测试路径最近者优先, 在MakeFriend中并没有引入到log4j:

如:

在Hello项目中的pom.xml引入了一个log4j-1.2.9.jar的包:


在HelloFriend项目中的pom.xml引入了Hello项目和一个log4j-1.2.17.jar的包:


MakeFriend项目中的pom.xml引入HelloFriend项目:但是注意在MakeFriend项目中并没有引入到依赖项目的log4j包,



解决办法:

注意Hello和HelloFriend的项目截图,有一个标签scope值为test:


scope作用是设置 传递性 依赖和可选 依赖。 Hello和HelloFriend项目中的 cope标签值改为compile
或者删除它即可,因为作用范围的问题。修改后查看效果,就依赖引入成功:





附上scope参数说明,如下图:





2. 路径 最近者 优先:

如:HelloFriend离MakeFriend最近,就采用HelloFriend中的jar

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值