maven 隐式依赖引起的包冲突解决办法

2025-05-29 0 34

包冲突

1.使用maven管理项目时可能会遇到包冲突的情况比如:log4j-over-slf4j.jar 和 slf4j-log4j12.jar这两个包同时一起运行时就会有问题。

2.这种冲突可能是显式依赖导致,也可能是隐式依赖导致。

显式依赖,直接可以从pom.xml文件的<dependency>中看到两个冲突包的引用。

隐式依赖,在pom.xml的<dependency>无法看到冲突的包,而是由<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

查到冲突包对应的依赖,在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

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 maven 隐式依赖引起的包冲突解决办法 https://www.kuaiidc.com/119275.html

相关文章

发表评论
暂无评论