解決Maven依賴沖突的方法
背景
在項目中screw-core依賴時發生瞭沖突,控制臺指出是log4j產生的依賴沖突,導致程序報錯無法運行,是一個典型的maven依賴沖突,基於這個問題進行
處理
處理首先查看控制臺報錯日志
基於這個報錯在pom依賴中查看一下
screw-corey依賴是這次新增加的依賴,也就是說依賴沖突是由於screw-core依賴和原有的依賴產生瞭沖突,具體是哪個依賴,我們打開screw-core依賴進行查看他的依賴,奇怪的是並沒有看到screw-core中存在log4j的引用,這時候想到一個idea的插件 maven-helper
maven-helper這個插件是專門幫助我們解決maven依賴沖突的插件,使用時可以看到具體的依賴沖突是哪些依賴,我進行瞭安裝使用
首先進入pom文件,安裝插件後會看到左下角有一個Dependency Analyzer按鈕,點擊一下,我們可以看到依賴沖突
依賴沖突有很多,其實這裡面的依賴沖突就是不同的依賴引用瞭不同的版本jar包,但是很多是沒有影響的,這裡面差生影響的就是log4j-api,我們看到項目中有兩個版本,一個是2.17.0,一個是2.11.2
點擊2.17.0jump to source 可以看到他的引用,根據pom發現他是在引入screw-core之前就已經存在的依賴,這就說明隨著screw-corey依賴的引入,導入瞭2.11.2版本的log4j,進而導致依賴沖突,然而在screw-core的依賴引入中沒有看到,就說明是他的下一層架依賴引入或者多層級依賴引入導致的問題。這時候我采用瞭排除法,對screw-core中類似log4j的依賴逐個排除
排除掉log4j依賴,問題解決
回顧
對於maven-helper的idea插件,在市面上是比較火的,但是使用起來並沒有達到我理想中的期望,比如直接找到沖突的依賴,直接排除掉,看瞭些網上的教程,對於簡單的以來沖突maven-helper可以較快的定位到,但是對於向我遇到的問題,還是需要慢慢的去排查,總之問題解決瞭,也算是很有收獲。
到此這篇關於解決Maven依賴沖突的方法的文章就介紹到這瞭,更多相關Maven依賴沖突內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- IntelliJ IDEA 好用插件之analyze inspect code詳解
- idea關聯maven的使用詳解
- 你要知道IDEA的這些必備插件
- 教你怎麼用java一鍵自動生成數據庫文檔
- 帶你走進Maven的大門-最全Maven配置及集成idea工具總結