欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

maven解決依賴沖突的三種解決方法

 更新時間:2024年03月20日 14:35:15   作者:moutory  
依賴沖突是指項目依賴的某一個jar包,有多個不同的版本,因而造成了包版本沖突,本文主要介紹了maven解決依賴沖突的三種解決方法,具有一定的參考價值,感興趣的可以了解一下

前言

隨著maven項目不斷推進,開發(fā)人員難免會遇到這樣一個問題,在添加新的依賴jar包后,會發(fā)現(xiàn)和原有的項目依賴產(chǎn)生沖突(多數(shù)情況是由于依賴傳遞引起的),這個時候就需要我們根據(jù)實際情況來選擇生效的最終依賴。

比如下圖:

下面將以上面的例子來對如何解決依賴沖突進行講解

方法一:使用maven提供的傳遞依賴原則

(一)第一聲明者優(yōu)先原則

其實所謂第一聲明者,就是在pom文件中,優(yōu)先使用書寫順序排在前面的依賴包,也就是誰先聲明,就先用誰的依賴。
如果我們想在我們的項目中使用5.0.2版本的spring-bean包的話,只需要調(diào)整一下依賴的順序即可。

(二)路徑者優(yōu)先原則

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

這種方法雖然簡單直接,但是只適合于項目依賴的jar包比較少的場景,一旦管理的依賴數(shù)量達(dá)到一定數(shù)量,簡單的調(diào)整依賴的順序并不能解決實際沖突問題。
在實際開發(fā)中很少應(yīng)用到。

方法二:排除依賴(有時候會用到)

排除依賴的思路也很簡單,如果有兩個依賴的版本發(fā)生了沖突,那么只要把其中一個依賴給排除掉,只剩下一個依賴,那么自然就可以解決沖突的問題。
我們只需要使用exclusion關(guān)鍵字對相關(guān)依賴進行排除就行

方法三:版本鎖定(最常用,推薦使用)

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

這里要注意兩點,版本鎖定和使用路徑優(yōu)先原則不同,使用路徑優(yōu)先原則,是實實在在地將jar包給引入到pom文件中,而版本鎖定只是規(guī)定了要使用的版本號,只有真實用到了相關(guān)的依賴,才生效。同時,版本鎖定可以更集中地約束和規(guī)定依賴版本,這種優(yōu)勢是其他方法所不能達(dá)到的。

當(dāng)然了,如果只是簡單的小型項目,使用其他方式可能是更好的解決方法。

到此這篇關(guān)于maven解決依賴沖突的三種解決方法的文章就介紹到這了,更多相關(guān)maven依賴沖突解決內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Mybatis工具類JdbcTypeInterceptor運行時自動添加jdbcType屬性

    Mybatis工具類JdbcTypeInterceptor運行時自動添加jdbcType屬性

    今天小編就為大家分享一篇關(guān)于Mybatis工具類JdbcTypeInterceptor運行時自動添加jdbcType屬性,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • Gradle進階使用結(jié)合Sonarqube進行代碼審查的方法

    Gradle進階使用結(jié)合Sonarqube進行代碼審查的方法

    今天小編就為大家分享一篇關(guān)于Gradle進階使用結(jié)合Sonarqube進行代碼審查的方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • java二路歸并排序示例分享

    java二路歸并排序示例分享

    這篇文章主要介紹了java二路歸并排序示例,需要的朋友可以參考下
    2014-02-02
  • java統(tǒng)計漢字字?jǐn)?shù)的方法示例

    java統(tǒng)計漢字字?jǐn)?shù)的方法示例

    這篇文章主要介紹了java統(tǒng)計漢字字?jǐn)?shù)的方法,結(jié)合實例形式分析了java正則判定、字符串遍歷及統(tǒng)計相關(guān)操作技巧,需要的朋友可以參考下
    2017-05-05
  • SpringBoot3.x中spring.factories?SPI?服務(wù)發(fā)現(xiàn)機制的改變問題小結(jié)

    SpringBoot3.x中spring.factories?SPI?服務(wù)發(fā)現(xiàn)機制的改變問題小結(jié)

    spring.factories其實是SpringBoot提供的SPI機制,底層實現(xiàn)是基于SpringFactoriesLoader檢索ClassLoader中所有jar引入的META-INF/spring.factories文件,這篇文章主要介紹了SpringBoot3.x中spring.factories?SPI?服務(wù)發(fā)現(xiàn)機制的改變,需要的朋友可以參考下
    2023-05-05
  • SpringBoot實現(xiàn)動態(tài)定時任務(wù)的示例代碼

    SpringBoot實現(xiàn)動態(tài)定時任務(wù)的示例代碼

    在SpringBoot項目中簡單使用定時任務(wù),不過由于要借助cron表達(dá)式且都提前定義好放在配置文件里,不能在項目運行中動態(tài)修改任務(wù)執(zhí)行時間,實在不太靈活?,F(xiàn)在我們就來實現(xiàn)可以動態(tài)修改cron表達(dá)式的定時任務(wù),感興趣的可以了解一下
    2022-10-10
  • 用java實現(xiàn)掃雷游戲

    用java實現(xiàn)掃雷游戲

    這篇文章主要為大家詳細(xì)介紹了用java實現(xiàn)掃雷游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • Java使用Request獲取請求參數(shù)的通用方式詳解

    Java使用Request獲取請求參數(shù)的通用方式詳解

    這篇文章主要給大家介紹了關(guān)于Java使用Request獲取請求參數(shù)的通用方式,在Java后端開發(fā)中第一步就是獲取前端傳過來的請求參數(shù),文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01
  • SpringBoot基于Mybatis-Plus自動代碼生成

    SpringBoot基于Mybatis-Plus自動代碼生成

    這篇文章主要介紹了SpringBoot基于Mybatis-Plus自動代碼生成,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • java 對稱加密算法實現(xiàn)詳解

    java 對稱加密算法實現(xiàn)詳解

    這篇文章主要介紹了java 對稱加密算法實現(xiàn)詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07

最新評論