解決Maven依賴沖突的方法

背景

在項目中screw-core依賴時發生瞭沖突,控制臺指出是log4j產生的依賴沖突,導致程序報錯無法運行,是一個典型的maven依賴沖突,基於這個問題進行

處理

處理首先查看控制臺報錯日志

0581f3b44a0a2055c4d4b0b0587ae213.jpg

基於這個報錯在pom依賴中查看一下

image.png

screw-corey依賴是這次新增加的依賴,也就是說依賴沖突是由於screw-core依賴和原有的依賴產生瞭沖突,具體是哪個依賴,我們打開screw-core依賴進行查看他的依賴,奇怪的是並沒有看到screw-core中存在log4j的引用,這時候想到一個idea的插件 maven-helper

maven-helper這個插件是專門幫助我們解決maven依賴沖突的插件,使用時可以看到具體的依賴沖突是哪些依賴,我進行瞭安裝使用

image.png

首先進入pom文件,安裝插件後會看到左下角有一個Dependency Analyzer按鈕,點擊一下,我們可以看到依賴沖突

image.png

依賴沖突有很多,其實這裡面的依賴沖突就是不同的依賴引用瞭不同的版本jar包,但是很多是沒有影響的,這裡面差生影響的就是log4j-api,我們看到項目中有兩個版本,一個是2.17.0,一個是2.11.2

image.png

點擊2.17.0jump to source 可以看到他的引用,根據pom發現他是在引入screw-core之前就已經存在的依賴,這就說明隨著screw-corey依賴的引入,導入瞭2.11.2版本的log4j,進而導致依賴沖突,然而在screw-core的依賴引入中沒有看到,就說明是他的下一層架依賴引入或者多層級依賴引入導致的問題。這時候我采用瞭排除法,對screw-core中類似log4j的依賴逐個排除

image.png

排除掉log4j依賴,問題解決

回顧

對於maven-helper的idea插件,在市面上是比較火的,但是使用起來並沒有達到我理想中的期望,比如直接找到沖突的依賴,直接排除掉,看瞭些網上的教程,對於簡單的以來沖突maven-helper可以較快的定位到,但是對於向我遇到的問題,還是需要慢慢的去排查,總之問題解決瞭,也算是很有收獲。

到此這篇關於解決Maven依賴沖突的方法的文章就介紹到這瞭,更多相關Maven依賴沖突內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: