前言
项目中遇到guava中Preconditions.checkState NoSuchMethod 的报错,排查思路在这里复盘下,以做后续回忆指导
- 首先启动报上述错误,猜测应该是jar包冲突
- 然后就开始排查guava本jar包的冲突问题,借助于IDEA的pom文件Maven->show dependencys ,然后查找guava包,看看到底有哪些版本
- 然后确实发现了多个版本(这里反而让人绕弯了),然后就各种排除非自主引入的版本,但是结果然并卵,思维陷入死胡同
- 回过神来直接定位找不到的方法的类,直接借助idea查找此类(非常直接),发现有两个同样的包名,同样的类名的冲突包,竟然不是guava自己,而是google-collections这个包,(都是谷歌自己的包,竟然这样坑我们)
- 接着赶紧排查引入次jar包的来源,发现原来是findbugs-maven-plugin 包引入的
- 直接exclude 包google-collections ,重启应用,完美解决
解决冲突总结
● 借助工具直接了当的找冲突类在工程中有哪些
● 冲突不一定只是本包版本冲突,也有可能是别的包类全名冲突