maven 隱式依賴引起的包沖突解決辦法
包沖突
1.使用maven管理項(xiàng)目時(shí)可能會(huì)遇到包沖突的情況比如:log4j-over-slf4j.jar 和 slf4j-log4j12.jar這兩個(gè)包同時(shí)一起運(yùn)行時(shí)就會(huì)有問(wèn)題。
2.這種沖突可能是顯式依賴導(dǎo)致,也可能是隱式依賴導(dǎo)致。
顯式依賴,直接可以從pom.xml文件的<dependency>中看到兩個(gè)沖突包的引用。
隱式依賴,在pom.xml的<dependency>無(wú)法看到?jīng)_突的包,而是由<dependency>引入的包間接引入的。
解決
先確認(rèn)哪些依賴間接引入了包。使用mvn dependency:tree查看整個(gè)項(xiàng)目的依賴樹(shù),這里能看到所有的依賴,包括間接依賴。
結(jié)果類似如下:
[INFO] +- junit:junit:jar:4.12:test [INFO] | \- org.hamcrest:hamcrest-core:jar:1.3:test [INFO] +- org.apache.storm:storm-core:jar:1.0.2:provided [INFO] | +- com.esotericsoftware:kryo:jar:3.0.3:compile [INFO] | | \- com.esotericsoftware:minlog:jar:1.3.0:compile [INFO] | +- org.clojure:clojure:jar:1.7.0:provided [INFO] | +- com.lmax:disruptor:jar:3.3.2:provided [INFO] | +- org.apache.logging.log4j:log4j-api:jar:2.1:provided [INFO] | +- org.apache.logging.log4j:log4j-core:jar:2.1:provided [INFO] | +- org.apache.logging.log4j:log4j-slf4j-impl:jar:2.1:provided [INFO] | +- org.slf4j:log4j-over-slf4j:jar:1.6.6:provided [INFO] | +- javax.servlet:servlet-api:jar:2.5:provided [INFO] | \- org.slf4j:slf4j-api:jar:1.7.7:compile [INFO] +- com.aaa.khala:aaa-khala-insight-sdk-transfer-api:jar:1.0.0-SNAPSHOT:compile [INFO] | \- com.aaa.khala:aaa-khala-common:jar:1.0.0-SNAPSHOT:compile [INFO] | +- javax.mail:javax.mail-api:jar:1.5.5:compile [INFO] | +- cglib:cglib:jar:2.2.2:compile [INFO] | +- org.aspectj:aspectjrt:jar:1.7.4:compile [INFO] | +- org.aspectj:aspectjweaver:jar:1.7.4:runtime [INFO] | +- org.javassist:javassist:jar:3.20.0-GA:compile [INFO] | +- log4j:log4j:jar:1.2.17:compile [INFO] | +- org.slf4j:slf4j-log4j12:jar:1.7.7:compile [INFO] | +- dom4j:dom4j:jar:1.6.1:compile [INFO] | +- jaxen:jaxen:jar:1.1.6:compile [INFO] | +- commons-collections:commons-collections:jar:3.2.1:compile [INFO] | +- commons-codec:commons-codec:jar:1.9:compile [INFO] | +- commons-beanutils:commons-beanutils:jar:1.9.2:compile [INFO] | +- org.apache.commons:commons-compress:jar:1.6:compile [INFO] | | \- org.tukaani:xz:jar:1.4:compile
查到?jīng)_突包對(duì)應(yīng)的依賴,在pom.xml的<dependency>中配置排除,就不會(huì)引入該包了,例如:
<dependency>
<groupId>com.aaa.khala</groupId>
<artifactId>aaa-khala-insight-sdk-transfer-api</artifactId>
<version>1.0.0-SNAPSHOT</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
springboot + mybatis + druid + 多數(shù)據(jù)源的問(wèn)題詳解
這篇文章主要介紹了springboot + mybatis + druid + 多數(shù)據(jù)源的問(wèn)題詳解,示例代碼文字相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09
異常解決SpringBoot項(xiàng)目啟動(dòng)卡住,無(wú)任何異常信息問(wèn)題
這篇文章主要介紹了異常解決SpringBoot項(xiàng)目啟動(dòng)卡住,無(wú)任何異常信息問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03
基于Quartz定時(shí)調(diào)度任務(wù)(詳解)
下面小編就為大家?guī)?lái)一篇基于Quartz定時(shí)調(diào)度任務(wù)(詳解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-11-11
Graceful Response 構(gòu)建 Spring Boot 響應(yīng)
Graceful Response是一個(gè)Spring Boot技術(shù)棧下的優(yōu)雅響應(yīng)處理器,提供一站式統(tǒng)一返回值封裝、全局異常處理、自定義異常錯(cuò)誤碼等功能,本文介紹Graceful Response 構(gòu)建 Spring Boot 下優(yōu)雅的響應(yīng)處理,感興趣的朋友一起看看吧2024-01-01
Java實(shí)現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)提取所需知識(shí)點(diǎn)
這篇文章主要介紹了Java實(shí)現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)提取所需知識(shí)點(diǎn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
springboot中通過(guò)lua腳本來(lái)獲取序列號(hào)的方法
這篇文章主要介紹了springboot中通過(guò)lua腳本來(lái)獲取序列號(hào)的方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06

