包沖突
1.使用maven管理項目時可能會遇到包沖突的情況比如:log4j-over-slf4j.jar 和 slf4j-log4j12.jar這兩個包同時一起運行時就會有問題。
2.這種沖突可能是顯式依賴導致,也可能是隱式依賴導致。
顯式依賴,直接可以從pom.xml文件的<dependency>中看到兩個沖突包的引用。
隱式依賴,在pom.xml的<dependency>無法看到?jīng)_突的包,而是由<dependency>引入的包間接引入的。
解決
先確認哪些依賴間接引入了包。使用mvn dependency:tree查看整個項目的依賴樹,這里能看到所有的依賴,包括間接依賴。
結果類似如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
[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)_突包對應的依賴,在pom.xml的<dependency>中配置排除,就不會引入該包了,例如:
1
2
3
4
5
6
7
8
9
10
11
|
< 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 > |
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
原文鏈接:http://blog.csdn.net/wangyangzhizhou/article/details/52403359