天天看點

記錄一次解決Maven依賴沖突的過程

作者:網際網路進階架構師

在項目中screw-core依賴時發生了沖突,控制台指出是log4j産生的依賴沖突,導緻程式報錯無法運作,是一個典型的maven依賴沖突,基于這個問題進行處理

處理

  1. 首先檢視控制台報錯日志
記錄一次解決Maven依賴沖突的過程

基于這個報錯在pom依賴中檢視一下

記錄一次解決Maven依賴沖突的過程

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

  1. maven-helper 這個插件是專門幫助我們解決maven依賴沖突的插件,使用時可以看到具體的依賴沖突是哪些依賴,我進行了安裝使用
記錄一次解決Maven依賴沖突的過程

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

記錄一次解決Maven依賴沖突的過程

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

記錄一次解決Maven依賴沖突的過程

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

記錄一次解決Maven依賴沖突的過程

排除掉log4j依賴,問題解決

回顧

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

作者:千雲

連結:https://juejin.cn/post/7233216023277158459

來源:稀土掘金

繼續閱讀