发现冲突
运行的时候可能报出错误xx类找不到xx方法,xx类找不到,很有可能就是冲突导致的。
定位冲突根因
通过idea maven插件
idea安装插件,maven helper
比如我有两个依赖,guava和findbug。
他们都用到了jsr305,但是我依赖的版本不同。可以进入pom文件点击下面的通过Dependency Anazlyer来查看冲突。
通过maven命令
bash
mvn dependency:tree
可以打印出依赖关系树
通过jvm参数
bash
-XX:+TraceClassLoading
在java进程启动时增加jvm参数,可以打印加载了哪些类,根据这些内容可以判断是不是加载错了。
解决冲突的方法:
- 使用同一版本。
- 通过调整pom文件依赖顺序,如果冲突版本差别不大,我建议把新版本放在上面,优先加载。
- 通过exclusion解决传递依赖性