国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

maven依賴jar包時版本沖突的解決

這篇具有很好參考價值的文章主要介紹了maven依賴jar包時版本沖突的解決。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

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

在pom.xml配置文件中,如果有兩個名稱相同版本不同的依賴聲明,那么先寫的會生效。

所以,先聲明自己要用的版本的jar包即可。
所以,添加新依賴時要放在最后邊,以防止新依賴替換原有依賴造成版本沖突。

2、路徑近者優(yōu)先

直接依賴優(yōu)先于傳遞依賴,如果傳遞依賴的jar包版本沖突了,那么可以自己聲明一個指定版本的依賴jar,即可解決沖突。

3、排出原則

傳遞依賴沖突時,可以在不需要的jar的傳遞依賴中聲明排除,從而解決沖突。

<dependency>
        
  <groupId>org.apache.struts</groupId>  
  <artifactId>struts2-spring-plugin</artifactId> 
  <version>2.3.24</version>
        
  <exclusions>
          <exclusion>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
          </exclusion>
  </exclusions>
  
</dependency>

4、版本鎖定原則(最常使用)

在配置文件pom.xml中先聲明要使用哪個版本的相應(yīng)jar包,聲明后其他版本的jar包一律不依賴。解決了依賴沖突。

<properties>
        
  <spring.version>4.2.4.RELEASE</spring.version>
  <hibernate.version>5.0.7.Final</hibernate.version>
  <struts.version>2.3.24</struts.version>
    
</properties>
   
<!-- 鎖定版本,struts2-2.3.24、spring4.2.4、hibernate5.0.7 -->
    
<dependencyManagement>    
  
  <dependencies>
    
    <dependency>    
      
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>      
      <version>${spring.version}</version>
      
    </dependency>
    
</dependencies>
  
</dependencyManagement>

5、查看jar包的間接依賴

如果發(fā)現(xiàn)某個jar包,自己的pom中并沒有定義,想看一下是被哪個jar包間接引用的,執(zhí)行以下命令,直接輸出到當(dāng)前項目下,然后在idea中打開,搜索要找的jar包名字即可。這里的 “±” 和"-"并沒有什么意義,只是為了讓分級看起來更直觀。

mvn dependency:tree>temp

maven依賴jar包時版本沖突的解決

如果想看沖突和重復(fù)的具體情況,用verbose參數(shù)

mvn dependency:tree -Dverbose -Dincludes=[commons-collections]

因此,我們可以看到Commons Collections 2.0被選為2.1,因為它離它更近,并且默認(rèn)情況下,Maven使用最近贏得策略解決版本沖突。

6、排包

maven依賴jar包時版本沖突的解決

如圖可知jai_core是在icepdf-core被間接引用的,如果jai_core的間接引入造成了依賴沖突,可在icepdf-core使用如下方式排出

org.icepdf.os icepdf-core 6.2.2
<exclusions>
    <exclusion>
        <groupId>javax.media</groupId>
        <artifactId>jai_core</artifactId>
    </exclusion>
</exclusions>

7、處理jar包依賴沖突總結(jié)

簡介:處理jar包依賴沖突,首先,對于多個jar包都引用同一jar包的情況,最好是在程序中顯式定義被共同引用的jar包的依賴,來統(tǒng)一版本號,方便維護

如果A和B都依賴同一jar包C,可能會出現(xiàn)兩種情況

A和B引用的C版本相同,這時按照pom定義順序選擇第一個即可,沒有沖突問題,如果在項目的maven中顯示定義了C依賴,那么用選擇項目定義的依賴,反正version都一樣,沒有影響

A和B依賴的C版本不同,選擇版本高的那個,這時會出現(xiàn)兩種結(jié)果

(1) 高版本兼容低版本,所以不會出現(xiàn)問題
(2)高版本不兼容低版本,假如A依賴C2版本,B依賴C3版本,C3不兼容C2,maven選擇了高版本C3,對A來說會出現(xiàn)問題?

有3種解決方法[1] [2]如果B版本也可依賴C2,在項目的maven中顯示定義對C2的依賴,這樣所有都使用C2版本[3]如果B版本不支持C2版本,只能降低B版本,找到依賴C2的B版本從功能性和可維護性考慮,高版本提供的功能更多,bug更少,優(yōu)先考慮1再考慮2最后考慮3文章來源地址http://www.zghlxwxcb.cn/news/detail-435849.html

到了這里,關(guān)于maven依賴jar包時版本沖突的解決的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 使用maven打jar包時,如何只把依賴的其它jar中的類打進jar包,沒有依賴的其它jar包的類文件不打進來?

    使用Maven打包時,默認(rèn)情況下,所有依賴的jar包都會被打包到生成的jar文件中。 如果只想將依賴的其他jar中的類文件打進來,而不包含其它jar包,可以使用Maven的 maven-shade-plugin 插件進行配置。 以下是一個示例配置,將只打包依賴的其他jar中的類文件: 1. 在pom.xml文件中添加

    2024年02月15日
    瀏覽(18)
  • maven打jar包時,缺少本地jar包

    最近通過Docker + harbor + kuboard方式進行在開發(fā)環(huán)境進行部署,遇到了一個問題,本地idea中運行項目正常,但是kuboard一直報錯重啟。 通過查看kuboard日志發(fā)現(xiàn)是在運行容器啟動項目時,缺少了一個本地數(shù)據(jù)庫連接驅(qū)動。 然后檢查項目中的pom文件,一開始感覺一切正常。pom配置如

    2024年02月11日
    瀏覽(19)
  • 如何定位、解決maven依賴沖突問題

    如何定位、解決maven依賴沖突問題

    目錄 1.依賴沖突的原因 2.復(fù)現(xiàn)一個依賴沖突場景 3.如何定位依賴沖突 3.1.maven show dependencies 3.2.maven helper 4.依賴路徑最短優(yōu)先原則 如果maven項目中,A依賴于B和C,B依賴于1.0版本的D,C依賴于2.0版本的D,這時候就會出現(xiàn)依賴沖突。 ? 在A上加載使用D依賴的時候,maven會根據(jù) 依賴路

    2024年02月10日
    瀏覽(24)
  • 【Maven】如何發(fā)現(xiàn),定位,解決依賴沖突

    【Maven】如何發(fā)現(xiàn),定位,解決依賴沖突

    運行的時候可能報出錯誤xx類找不到xx方法,xx類找不到,很有可能就是沖突導(dǎo)致的。 idea安裝插件,maven helper 比如我有兩個依賴,guava和findbug。 他們都用到了jsr305,但是我依賴的版本不同??梢赃M入pom文件點擊下面的通過Dependency Anazlyer來查看沖突。 可以打印出依賴關(guān)系樹

    2024年02月11日
    瀏覽(32)
  • Maven項目中的依賴出現(xiàn)版本沖突,最終發(fā)現(xiàn)是對Dependency Scope理解有誤

    Maven項目中的依賴出現(xiàn)版本沖突,最終發(fā)現(xiàn)是對Dependency Scope理解有誤

    再來個文章目錄 本文記錄一下遇到maven依賴版本沖突后的排查過程說明以及問題原因說明 下面還有投票,幫忙投個票?? 最近加入了 Apache Dubbo 開源社區(qū),成為了一名Dubbo Contributor。在熟悉Dubbo中的各個RPC協(xié)議時根據(jù)官網(wǎng)提供的示例搭建了一個示例。在熟悉過后想看下谷歌提供

    2023年04月09日
    瀏覽(26)
  • 【Maven】jar包沖突原因與最優(yōu)解決方案

    【Maven】jar包沖突原因與最優(yōu)解決方案

    【Maven】jar包沖突原因與 最優(yōu) 解決方案 你是否經(jīng)常遇到這樣的報錯: 以上報錯就有可能是jar包沖突造成的,Maven中jar包沖突是開發(fā)過程中比較常見而又令人頭疼的問題,我們需要知道 jar包沖突的原理,才能更好的去解決jar包沖突的問題。本文將從jar包沖突的原理和解決jar包

    2023年04月23日
    瀏覽(21)
  • 使用maven profile 實現(xiàn)一次打包多版本依賴的fat jar

    使用maven profile 實現(xiàn)一次打包多版本依賴的fat jar

    基于一種特殊情況: 需要開發(fā)通用代碼,但底層依賴的jar有不同版本,使用一次maven 命令編譯來同時生成多個fat jar。 測試代碼結(jié)構(gòu): log4j-v1/log4j-v2 有一個同名類被maintest引用。 maintest pom.xml如下

    2024年02月12日
    瀏覽(24)
  • bcprov-jdk15to18和其他的bcprov版本jar包沖突(不同版本jar兼容)解決,與東方通bcprov-jdk15on.jar沖突解決

    bcprov-jdk15to18和其他的bcprov版本jar包沖突(不同版本jar兼容)解決,與東方通bcprov-jdk15on.jar沖突解決

    項目需要新集成一個sdk進行服務(wù)調(diào)用,在本地使用 Tomcat 開發(fā)調(diào)試好好的,更新到服務(wù)器上發(fā)現(xiàn)不行了,服務(wù)都被起不來了。報錯 SecurityException: JCE cannot authenticate the provider BC 。 更換和東方通一樣的版本jar后,又報錯 java.lang.SecurityException class \\\"org.bouncycastle.crypto.digests.General

    2024年02月04日
    瀏覽(64)
  • 【Maven】006-Maven 依賴傳遞和依賴沖突

    【Maven】006-Maven 依賴傳遞和依賴沖突

    概念: Maven 依賴傳遞是指當(dāng)一個項目依賴于另一個項目或庫時,Maven 會 自動解析和獲取 這些依賴,確保項目能夠順利構(gòu)建和運行。 依賴傳遞包括 直接依賴和間接依賴 。直接依賴是項目 直接引用 的庫,而間接依賴是 直接依賴所引用的其他庫 。 作用: 簡化項目管理 :Ma

    2024年02月02日
    瀏覽(34)
  • maven依賴管理(依賴配置、依賴傳遞、依賴沖突、依賴范圍)

    maven依賴管理(依賴配置、依賴傳遞、依賴沖突、依賴范圍)

    這篇文章會介紹在maven中的依賴配置、依賴傳遞、依賴范圍等知識點。 依賴配置很好理解,就是指當(dāng)前項目需要什么jar,就在dependencies中進行配置 在maven管理jar的時候,沖突是肯定存在的,這里就來介紹一下在maven中對于jar的一些管理是如何進行的,遵循什么規(guī)則。 簡單說就

    2024年02月11日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包