常見的jar包沖突報錯信息有:NoSuchMethodError, ClassNotFoundException, NoClassDefFoundError等等(還有個什么來着,搞忘記了)
原因:maven里引用了同一個坐標的jar的不同版本
解決方案:
1. mvn dependency:tree mvn dependency:tree # 可以看到整個項目的jar包依賴樹,在控制台 mvn dependency:tree -Dverbose # 查看完整依賴 mvn dependency:tree>tree.txt # 將依賴結果存成文件 mvn dependency:tree -Dverbose -Dincludes=*guava* # 查看某個具體的jar的依賴信息 2. Intellij插件MavenHelper 網上有很多關於這個插件的介紹和使用,可以參考 https://www.cnblogs.com/happyflyingpig/p/11238713.html 3. maven-shade-plugin 關於這個插件的介紹和原理,我也是看了下面這篇文章才明白的,大家可以參考一下。 https://zhuanlan.zhihu.com/p/62796806
 
         前言:
在企業開發中,公司項目各模塊的依賴是比較復雜,往往是A模塊中依賴了B、C、D…等模塊,此時我們若想在A模塊中查找某個jar依賴就會很麻煩,因為無法在A的pom.xml中直接搜索到。最笨的方法就是對A模塊依賴的其他模塊進行逐一搜索,但我想你並不想這么做。下面我通過一個實際的案例,來簡單地談談 IDEA 如何快捷地找到相應的pom.xml。
場景:
在項目中,我引入了org.json.JSONArray這個類,編譯時期沒有報錯,但啟動項目的時候卻出現ClassNotFoundException,這讓我很郁悶。后面一想,可能是該依賴的maven生命周期出現問題,所以只好先去看看該依賴的pom.xml了。
解決步驟:
1. 確定要查找jar的 artifactId

2. 打開項目的maven依賴圖

3. 在依賴圖上搜索上面找到的artifactId,這里是android-json

4. 在圖上找到相應的元素后,鼠標雙擊便能進入jar的pom.xml

進來后,我們能很清楚地看到該依賴上面寫着Compile編譯期有效,這樣問題就明確了。(如果你不相信上面的注釋,可以用上面的方法,在依賴圖上搜索spring-boot-configuration-processor這個jar,就會發現該依賴是<scope>provided</scope>)
5. 引入新的依賴

 
        