idea如何解決maven依賴沖突
最近在一個老spring項目上面需要適配一個新功能,過程中也需要升級spring的版本,然后最后就導(dǎo)致maven的依賴包很亂,同一個包存在多個版本,本文就記錄下使用idea解決maven的依賴沖突,同時記錄下assembly打包插件的坑。
依賴沖突解決
首先打開pom文件,然后右鍵按如下圖選擇進入到該pom文件的整個依賴關(guān)系圖
依賴關(guān)系圖一般都很大,基本看不清,如下:
如果你知道哪些包產(chǎn)生沖突,那么mac下可直接common+f快捷搜索
然后找到對應(yīng)的包排除即可,這里的紅色虛線即表示與哪些jar包產(chǎn)生沖突,如下圖可以看到spring-aop存在兩個版本,導(dǎo)致沖突,排除即可:
此時pom文件中會自動排除,在對應(yīng)的依賴上會增加exclusion標簽
ps:如果你不知道哪些jar包產(chǎn)生沖突,那么需要你首先將整個依賴圖變成1:1,這樣會看的清楚點
assembly插件版本的坑
改完所有依賴沖突后,以spring為例,即maven中將spring的版本都已更改為4.2.0,但本地打了包驗證發(fā)現(xiàn)部分jar包仍然依賴了4.1.9的spring,即spring升級前的版本,這就非常奇怪,通過mvn dependency:tree -D output=test.txt嘗試輸出依賴樹,發(fā)現(xiàn)依賴樹中也都是正確的,即都是4.2.0,并沒有4.1.9的spring包。
既然本地依賴都是正確的,那么出問題的可能就在打包的過程中,由于我們項目使用到了assembly插件,初步懷疑與它的版本有關(guān),嘗試在某個進程下升級了版本號,果然生效了...猜想估計低版本的assembly在打包過程中可能不會去下載高版本的spring把,升級之前的assembly插件版本為2.6,升級后為3.1.1,僅作記錄。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
從Mybatis-Plus開始認識SerializedLambda的詳細過程
這篇文章主要介紹了從Mybatis-Plus開始認識SerializedLambda,本文通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下2024-07-07教你如何在IDEA?中添加?Maven?項目的?Archetype(解決添加不起作用的問題)
這篇文章主要介紹了如何在?IDEA?中添加?Maven?項目的?Archetype(解決添加不起作用的問題),本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-08-08gateway網(wǎng)關(guān)接口請求的校驗方式
這篇文章主要介紹了gateway網(wǎng)關(guān)接口請求的校驗方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07關(guān)于Http持久連接和HttpClient連接池的深入理解
眾所周知,httpclient是java開發(fā)中非常常見的一種訪問網(wǎng)絡(luò)資源的方式了,下面這篇文章主要給大家介紹了關(guān)于Http持久連接和HttpClient連接池的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-05-05Spring中@DependsOn注解的作用及實現(xiàn)原理解析
這篇文章主要介紹了Spring中@DependsOn注解的作用及實現(xiàn)原理解析,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03