maven?helper?jar包沖突的幾種解決方法
一 概要說明
1.1 說明
首先,解決idea中jar包沖突,使用maven的插件:maven helper插件,它能夠給我們羅列出來同一個(gè)jar包的不同版本,以及他們的來源,但是對(duì)不同jar包中同名的類沒有辦法。
1.2 依賴順序
從圖中可以看出有哪些jar存在沖突,存在沖突的情況下最終采用了哪個(gè)依賴的版本。標(biāo)紅的就是沖突版本,白色的是當(dāng)前的解析版本。
1.3 解決思路
方案1:在依賴中排除掉沖突版本的依賴。使用 exclusion 排除定位到的沖突包。
方案2: 顯示單獨(dú)聲明使用依賴的版本
方案3: 方案1+方案2 ,先排除,后聲明指定的版本。
方案4:鎖定版本,我們最常使用的解決方式,是使用dependencyManagement統(tǒng)一對(duì)依賴的版本進(jìn)行定義。這樣的話,導(dǎo)入依賴的時(shí)候就會(huì)直接使用我們鎖定的依賴版本。
這里要注意兩點(diǎn),版本鎖定和使用路徑優(yōu)先原則不同,使用路徑優(yōu)先原則,是實(shí)實(shí)在在地將jar包給引入到pom文件中,而版本鎖定只是規(guī)定了要使用的版本號(hào),只有真實(shí)用到了相關(guān)的依賴,才生效。同時(shí),版本鎖定可以更集中地約束和規(guī)定依賴版本,這種優(yōu)勢(shì)是其他方法所不能達(dá)到的。
當(dāng)然了,如果只是簡(jiǎn)單的小型項(xiàng)目,使用其他方式可能是更好的解決方法。
http://www.dbjr.com.cn/program/318190efu.htm
二 案例說明1
2.1 解析說明
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.說明
1.spring-webmvc-6.0.9 依賴于spring-aop-5.2.8
2.spring-webmvc-6.0.9 依賴于spring-context-5.2.8,springcontext-5.2.8 依賴于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,重新拉包,如圖
三 案例說明2
3.1 沖突截圖
3.2 截圖辦法
在父工程中的pom文件中聲明沖突依賴的具體版本。如圖,這里指定
dpsn-appas-oltp-plugin-api的版本為1.0.0
四 案例說明3 鎖定版本
4.1 沖突截圖
鎖定版本,我們最常使用的解決方式,是使用dependencyManagement統(tǒng)一對(duì)依賴的版本進(jìn)行定義。這樣的話,導(dǎo)入依賴的時(shí)候就會(huì)直接使用我們鎖定的依賴版本。
這里在父工程的pom里面<dependecyManagement>中的<dependencies>標(biāo)簽中,指定使用版本
<dependency> <groupId>com.pab.dpscn</groupId> <artifactId>corebankpulltest-message</artifactId> <version>1.0.0-dev-test-SNAPSHOT</version> </dependency>
詳情見下圖
4.2 案例2
2.解決辦法
到此這篇關(guān)于maven helper jar包沖突的幾種解決方法的文章就介紹到這了,更多相關(guān)maven helper jar包沖突 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java實(shí)現(xiàn)Huffman編碼的示例代碼
Huffman編碼是一種編碼方式,本文主要介紹了Java實(shí)現(xiàn)Huffman編碼的示例代碼,具有一定的參考價(jià)值,感興趣的可以了解一下2023-08-08Spring+SpringMVC+Hibernate整合實(shí)例講解
在本篇文章里小編給大家整理的是關(guān)于Spring+SpringMVC+Hibernate整合實(shí)例講解,需要的朋友們可以學(xué)習(xí)下。2020-03-03基于BigDecimal.setScale的用法小結(jié)
這篇文章主要介紹了基于BigDecimal.setScale的用法小結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-09-09