一、使用mvn dependency:tree 命令
1、直接使用mvn dependency:tree命令是分模块打印出来的,
2、如果需要打印到文件,可以使用 mvn dependency:tree ->a.txt 这个命令
mvn dependency:tree 命令的怎么看结果及其他用法
间接依赖的mvn 命令行查看 mvn dependency:tree_金箍一梦何来愁的博客-CSDN博客_mvn 查看间接依赖
二、使用工具
Maven中 jar包冲突原理与解决办法_web18484626332的博客-CSDN博客_maven包冲突
maven中pom依赖相同jar包优先顺序加载版本_起个名字真XX费劲的博客-CSDN博客_pom依赖加载顺序
三、处理jar冲突原则
处理jar包依赖冲突
简介:处理jar包依赖冲突,首先,对于多个jar包都引用同一jar包的情况,最好是在程序中显式定义被共同引用的jar包的依赖,来统一版本号,方便维护
如果A和B都依赖同一jar包C,可能会出现两种情况
1.A和B引用的C版本相同,这时按照pom定义顺序选择第一个即可,没有冲突问题,如果在项目的maven中显示定义了C依赖,那么用选择项目定义的依赖,反正version都一样,没有影响
2.A和B依赖的C版本不同,选择版本高的那个,这时会出现两种结果
(1) 高版本兼容低版本,所以不会出现问题
(2)高版本不兼容低版本,假如A依赖C2版本,B依赖C3版本,C3不兼容C2,maven选择了高版本C3,对A来说会出现问题
有3种解决方法
[1]提升A版本,找到依赖C3的A版本
[2]如果B版本也可依赖C2,在项目的maven中显示定义对C2的依赖,这样所有都使用C2版本
[3]如果B版本不支持C2版本,只能降低B版本,找到依赖C2的B版本
从功能性和可维护性考虑,高版本提供的功能更多,bug更少,优先考虑1
再考虑2
最后考虑3