maven解決依賴沖突的三種解決方法
前言
隨著maven項目不斷推進,開發(fā)人員難免會遇到這樣一個問題,在添加新的依賴jar包后,會發(fā)現和原有的項目依賴產生沖突(多數情況是由于依賴傳遞引起的),這個時候就需要我們根據實際情況來選擇生效的最終依賴。
比如下圖:

下面將以上面的例子來對如何解決依賴沖突進行講解
方法一:使用maven提供的傳遞依賴原則
(一)第一聲明者優(yōu)先原則
其實所謂第一聲明者,就是在pom文件中,優(yōu)先使用書寫順序排在前面的依賴包,也就是誰先聲明,就先用誰的依賴。
如果我們想在我們的項目中使用5.0.2版本的spring-bean包的話,只需要調整一下依賴的順序即可。

(二)路徑者優(yōu)先原則
路徑者優(yōu)先原則也很好理解,如果有兩個依賴版本沖突了,那么就顯式地在pom文件中把要使用的依賴添加上去。

這種方法雖然簡單直接,但是只適合于項目依賴的jar包比較少的場景,一旦管理的依賴數量達到一定數量,簡單的調整依賴的順序并不能解決實際沖突問題。
在實際開發(fā)中很少應用到。
方法二:排除依賴(有時候會用到)
排除依賴的思路也很簡單,如果有兩個依賴的版本發(fā)生了沖突,那么只要把其中一個依賴給排除掉,只剩下一個依賴,那么自然就可以解決沖突的問題。
我們只需要使用exclusion關鍵字對相關依賴進行排除就行

方法三:版本鎖定(最常用,推薦使用)
對于版本沖突的問題,我們最常使用的解決方式,是使用dependencyManagement統一對依賴的版本進行定義。這樣的話,導入依賴的時候就會直接使用我們鎖定的依賴版本。

這里要注意兩點,版本鎖定和使用路徑優(yōu)先原則不同,使用路徑優(yōu)先原則,是實實在在地將jar包給引入到pom文件中,而版本鎖定只是規(guī)定了要使用的版本號,只有真實用到了相關的依賴,才生效。同時,版本鎖定可以更集中地約束和規(guī)定依賴版本,這種優(yōu)勢是其他方法所不能達到的。
當然了,如果只是簡單的小型項目,使用其他方式可能是更好的解決方法。
到此這篇關于maven解決依賴沖突的三種解決方法的文章就介紹到這了,更多相關maven依賴沖突解決內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
mybatis查詢返回Map<String,Object>類型的講解
這篇文章主要介紹了mybatis查詢返回Map<String,Object>類型的講解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-06-06
Spring中的注解@Value("#{}")與@Value("${}")的區(qū)別
這篇文章主要介紹了Spring中的注解@Value(“#{}“)與@Value(“${}“)的區(qū)別到底是什么,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-06-06
springboot 自定義404、500錯誤提示頁面的實現
springboot 默認已經提供了一套處理異常的機制。在 springboot 中提供了一個名為 BasicErrorController 的類來處理 /error 請求,然后跳轉到默認顯示異常的頁面來展示異常信息,本文就詳細的介紹一下,感興趣的可以了解一下2021-11-11

