Maven依赖冲突调解原则

最短路径优先

当依赖声明不在同一个POM文件中时,或者说存在依赖传递时,路径最短的jar包将被选为最终依赖。例如下面两个依赖路径:

A
B
C
Jar1.0
X
Y
Jar2.0

此时Jar2.0将被选为最终依赖。

最先声明优先

当依赖声明不在同一个POM文件中时,或者说存在依赖传递时,并且依赖传递长度相同时,最先声明的依赖将被选为最终依赖。

A
B
C
Jar1.0
X
Y
Z
Jar2.0

此时Jar1.0将被作为最终依赖。

覆盖优先

当依赖声明在同一个POM文件中时,后面声明的依赖将覆盖前面声明的依赖。

Jar1.0
Jar2.0

此时,Jar2.0将被选为最终依赖。

查看maven依赖树

通过命令行输出到控制台:

mvn dependency:tree

通过命令行输出到指定文件:

mvn dependency:tree >d:/tree.txt

也可以通过idea Maven插件查看,我认为这是一种更好的方式。

查看maven Effective Pom文件

Effective Pom即最终起作用的Pom文件,maven最终裁决选中的所有依赖都会集中声明在该Pom文件中。
通过命令行输出到控制台:

mvn help:effective-pom

通过命令行输出到指定文件:

mvn help:effective-pom >d:/effective.xml

idea 用户可以右键项目pom.xml文件,选择maven,在进一步选择show effective pom命令查看。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值