参考:http://ian.wang/106.htm

参考:https://www.jianshu.com/p/7b4d3453bb14?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

参考:https://blog.csdn.net/u014515854/article/details/80407024

参考:http://www.mamicode.com/info-detail-2246820.html  (查看依赖冲突解决办法)

maven学习笔记系列:https://blog.csdn.net/u011781521/article/details/79055605

一、问题

项目开发过程中,经常会遇到jar冲突,然后maven根据自己的规则进行冲突解决,导致项目在运行的过程中报错。

1、maven自动解决依赖冲突的规则是什么?

2、如何查看当前项目的maven的依赖树?

3、如何从依赖树中找到自己预期的版本,是被那个jar给覆盖了?

4、如何人工进行依赖冲突解决,达到使用目的?

 

 

二、解决问题

1、maven自动解决依赖冲突的规则是什么?

第一原则:路径最近者优先

项目A有如下的依赖关系:

A->B->C->X(1.0)

A->D->X(2.0)

则该例子中,X的版本是2.0

 

第二原则:路径相等,先声明者优先

项目A有如下的依赖关系:

A->B->Y(1.0)

A->C->Y(2.0)

若pom文件中B的依赖坐标先于C进行声明,则最终Y的版本为1.0

 

2、如何查看当前项目的maven依赖树?

【maven】maven查看项目依赖并解决依赖冲突的问题
//进入项目的pom.xml文件的目录下,运行如下命令
//这个是正常依赖的树
mvn dependency:tree
//这个命令是查看maven是如何解决依赖冲突的依赖树
mvn -Dverbose dependency:tree
//如果想将依赖树打印到指定文件中,则命令如下
mvn -Dverbose  dependency:tree -Doutput=/Users/shangxiaofei/sxfoutput.txt
View Code

相关文章:

  • 2021-05-23
  • 2022-12-23
  • 2022-12-23
  • 2021-09-06
  • 2021-12-16
  • 2021-08-07
  • 2021-07-21
  • 2022-12-23
猜你喜欢
  • 2021-12-08
  • 2021-08-11
  • 2021-12-01
  • 2021-11-09
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案