前言
項目中遇到guava中Preconditions.checkState NoSuchMethod 的報錯,排查思路在這裏覆盤下,以做後續回憶指導
- 首先啓動報上述錯誤,猜測應該是jar包衝突
- 然後就開始排查guava本jar包的衝突問題,藉助於IDEA的pom文件Maven->show dependencys ,然後查找guava包,看看到底有哪些版本
- 然後確實發現了多個版本(這裏反而讓人繞彎了),然後就各種排除非自主引入的版本,但是結果然並卵,思維陷入死衚衕
- 回過神來直接定位找不到的方法的類,直接藉助idea查找此類(非常直接),發現有兩個同樣的包名,同樣的類名的衝突包,竟然不是guava自己,而是google-collections這個包,(都是谷歌自己的包,竟然這樣坑我們)
- 接着趕緊排查引入次jar包的來源,發現原來是findbugs-maven-plugin 包引入的
- 直接exclude 包google-collections ,重啓應用,完美解決
解決衝突總結
● 藉助工具直接了當的找衝突類在工程中有哪些
● 衝突不一定只是本包版本衝突,也有可能是別的包類全名衝突