maven?helper?jar包沖突的幾種解決方法
一 概要說(shuō)明
1.1 說(shuō)明
首先,解決idea中jar包沖突,使用maven的插件:maven helper插件,它能夠給我們羅列出來(lái)同一個(gè)jar包的不同版本,以及他們的來(lái)源,但是對(duì)不同jar包中同名的類(lèi)沒(méi)有辦法。
1.2 依賴(lài)順序
從圖中可以看出有哪些jar存在沖突,存在沖突的情況下最終采用了哪個(gè)依賴(lài)的版本。標(biāo)紅的就是沖突版本,白色的是當(dāng)前的解析版本。

1.3 解決思路
方案1:在依賴(lài)中排除掉沖突版本的依賴(lài)。使用 exclusion 排除定位到的沖突包。

方案2: 顯示單獨(dú)聲明使用依賴(lài)的版本

方案3: 方案1+方案2 ,先排除,后聲明指定的版本。

方案4:鎖定版本,我們最常使用的解決方式,是使用dependencyManagement統(tǒng)一對(duì)依賴(lài)的版本進(jìn)行定義。這樣的話,導(dǎo)入依賴(lài)的時(shí)候就會(huì)直接使用我們鎖定的依賴(lài)版本。

這里要注意兩點(diǎn),版本鎖定和使用路徑優(yōu)先原則不同,使用路徑優(yōu)先原則,是實(shí)實(shí)在在地將jar包給引入到pom文件中,而版本鎖定只是規(guī)定了要使用的版本號(hào),只有真實(shí)用到了相關(guān)的依賴(lài),才生效。同時(shí),版本鎖定可以更集中地約束和規(guī)定依賴(lài)版本,這種優(yōu)勢(shì)是其他方法所不能達(dá)到的。
當(dāng)然了,如果只是簡(jiǎn)單的小型項(xiàng)目,使用其他方式可能是更好的解決方法。
http://m.fzitv.net/program/318190efu.htm
二 案例說(shuō)明1
2.1 解析說(shuō)明
1.沖突概貌
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>6.0.9</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>5.3.23</version>
</dependency>
2.說(shuō)明
1.spring-webmvc-6.0.9 依賴(lài)于spring-aop-5.2.8
2.spring-webmvc-6.0.9 依賴(lài)于spring-context-5.2.8,springcontext-5.2.8 依賴(lài)于spring-aop-5.3.23
沖突出現(xiàn):spring-aop-5.2.8與spring-aop-5.3.23

沖突出現(xiàn):spring-aop-5.2.8與spring-aop-5.3.23

2.2 解決辦法
1.spring-webmvc-6.0.9 排除掉:spring-aop-5.2.8
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>6.0.9</version>
<exclusions>
<exclusion>
<artifactId>spring-aop</artifactId>
<groupId>org.springframework</groupId>
</exclusion>
</exclusions>
</dependency>2.starter-web排除掉 spirngwebmvc-5.2.8,然后聲明6.0.9版本。

3.刷新pom,重新拉包,如圖

三 案例說(shuō)明2
3.1 沖突截圖

3.2 截圖辦法
在父工程中的pom文件中聲明沖突依賴(lài)的具體版本。如圖,這里指定
dpsn-appas-oltp-plugin-api的版本為1.0.0

四 案例說(shuō)明3 鎖定版本
4.1 沖突截圖
鎖定版本,我們最常使用的解決方式,是使用dependencyManagement統(tǒng)一對(duì)依賴(lài)的版本進(jìn)行定義。這樣的話,導(dǎo)入依賴(lài)的時(shí)候就會(huì)直接使用我們鎖定的依賴(lài)版本。
這里在父工程的pom里面<dependecyManagement>中的<dependencies>標(biāo)簽中,指定使用版本
<dependency> <groupId>com.pab.dpscn</groupId> <artifactId>corebankpulltest-message</artifactId> <version>1.0.0-dev-test-SNAPSHOT</version> </dependency>
詳情見(jiàn)下圖

4.2 案例2

2.解決辦法

到此這篇關(guān)于maven helper jar包沖突的幾種解決方法的文章就介紹到這了,更多相關(guān)maven helper jar包沖突 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot使用WebSocket的方法實(shí)例詳解
WebSocket 是 HTML5 開(kāi)始提供的一種在單個(gè) TCP 連接上進(jìn)行全雙工通訊的協(xié)議。這篇文章主要介紹了SpringBoot使用WebSocket,需要的朋友可以參考下2019-06-06
Spring中Transactional注解使用的心得(推薦)
這篇文章主要介紹了Spring中Transactional注解使用的心得,事務(wù)是用來(lái)控制數(shù)據(jù)的ACID特性的,用于保證數(shù)據(jù)的正確性和完整性,需要的朋友可以參考下2022-10-10
Java求字符串中出現(xiàn)次數(shù)最多的字符串以及出現(xiàn)次數(shù)
這篇文章主要為大家詳細(xì)介紹了Java統(tǒng)計(jì)字符串中出現(xiàn)次數(shù)最多的字符串以及出現(xiàn)次數(shù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04
Spring-Smart-DI 動(dòng)態(tài)切換實(shí)現(xiàn)類(lèi)的步驟
文章介紹了如何使用spring-smart-di的@AutowiredProxySPI注解來(lái)實(shí)現(xiàn)動(dòng)態(tài)切換服務(wù)提供商的功能,通過(guò)配置點(diǎn)和代理對(duì)象,實(shí)現(xiàn)動(dòng)態(tài)切換而無(wú)需重啟服務(wù),感興趣的朋友一起看看吧2025-03-03
spring cloud服務(wù)連接超時(shí)問(wèn)題及解決
這篇文章主要介紹了spring cloud服務(wù)連接超時(shí)問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01
詳解Springboot快速搭建跨域API接口的步驟(idea社區(qū)版2023.1.4+apache-maven-3.9.
這篇文章主要介紹了Springboot快速搭建跨域API接口(idea社區(qū)版2023.1.4+apache-maven-3.9.3-bin),本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-07-07
Java?超詳細(xì)講解Spring?MVC異常處理機(jī)制
Spring?MVC中提供了一個(gè)通用的異常處理機(jī)制,它提供了一個(gè)成熟、簡(jiǎn)潔并且清晰的異常處理方案。當(dāng)使用Spring?MVC開(kāi)發(fā)Web應(yīng)用時(shí),利用這套現(xiàn)成的機(jī)制進(jìn)行異常處理也更加自然并且高效2022-04-04
java實(shí)現(xiàn)計(jì)算地理坐標(biāo)之間的距離
java實(shí)現(xiàn)計(jì)算地理坐標(biāo)之間的距離,主要是通過(guò)計(jì)算兩經(jīng)緯度點(diǎn)之間的距離來(lái)實(shí)現(xiàn),有需要的小伙伴參考下吧2015-03-03

