maven踩坑-解决依赖冲突
2020-05-10 本文已影响0人
我不懂我不懂a
maven的主要功能是:项目构建,项目依赖管理,软件项目持续集成,版本管理,项目站点描述信息管理
依赖冲突产生的原因:
如图,项目X引入了Y包和G包,Y和G都依赖了Z,但是两个Z的版本不同,maven默认的机制是就近原则(最短路径),路径一样长的先加载哪个jar包就使用它。这样可能就就会报错:不同版本的jar包可能有的api不一样,版本不兼容。
通过命令来查看maven项目的依赖树,据说加-Dverbose是查看全部依赖树,不然就是一部分
mvn dependency:tree [-Dverbose]
查看某个jar包的依赖
mvn dependency:tree -Dverbose -Dincludes=groupId:artifactId
然后Fix它,使用exclusions标记排除依赖:
image.png
引用: https://blog.csdn.net/triski/article/details/82825637
https://maven.apache.org/plugins/maven-dependency-plugin/examples/resolving-conflicts-using-the-dependency-tree.html
https://dzone.com/articles/solving-dependency-conflicts-in-maven