【Maven】依賴重複和衝突的問題


解決Maven包依賴重複、衝突導致(omitted for duplicate、omitted for conflict with x.y.z)問題


Java開發者避免不來使用Maven,你的項目避免不了依賴第三方的jar包,避免不了會發生依賴重複和衝突。

到底是怎麼產生的呢?

舉個例子,很容易理解。YourApp依賴Ajar,Ajar依賴Xjar-1.0、Yjar-1.0,還依賴Bjar,Bjar依賴Xjar-2.0、Zjar-1.0,這個時候YourApp是依賴Xjar-1.0還是依賴Xjar-2.0呢?這個上帝都不知道,聽天由命,哪個版本被第一個加載進來就是它了。可想而知,出現詭異的問題那就不難理解了。

如何幹掉這個問題呢?

首先,找出可能重複和衝突的依賴。使用的工具有:

<code>// 查看依賴樹
mvn dependency:tree
// 查看依賴樹,-Dverbose顯示更多信息
mvn dependency:tree -Dverbose
// 查看依賴樹,-Dincludes進行過濾
mvn dependency:tree -Dverbose -Dincludes='*jackson*:"jackson*'/<code>

其次,引入希望的版本,過濾其它不需要的版本,武功秘籍就是excludes,如下圖:

引入指定版本

【Maven】依賴重複和衝突的問題

清除其它版本

【Maven】依賴重複和衝突的問題

在使用IDEA的時候,YourApp有時還是會出現類似的問題,那就刷新下Maven吧,IDEA緩存也是很多坑,沒事重啟下或者刷新下。

【Maven】依賴重複和衝突的問題


分享到:


相關文章: