jar包冲突启动报错

1、引入jia包

<dependency>
    <groupId>com.cainiao.wmp</groupId>
    <artifactId>task-client</artifactId>
    <version>1.1.7-ldl-SNAPSHOT</version>
</dependency>

2、本地启动报错如下

java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.taobao.pandora.boot.loader.LaunchRunner.run(LaunchRunner.java:38)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.IllegalArgumentException: LoggerFactory is not a Logback LoggerContext but Logback is on the classpath. Either remove Logback or the competing implementation (class org.slf4j.helpers.NOPLoggerFactory loaded from file:/Users/caolei/Downloads/repository/org/slf4j/slf4j-api/1.7.30/slf4j-api-1.7.30.jar). If you are using WebLogic you will need to add 'org.slf4j' to prefer-application-packages in WEB-INF/weblogic.xml: org.slf4j.helpers.NOPLoggerFactory
at org.springframework.util.Assert.instanceCheckFailed(Assert.java:696)
at org.springframework.util.Assert.isInstanceOf(Assert.java:596)

3、jar包依赖冲突解决

3.1 输出工程依赖关系

mvn dependency:tree
mvn dependency:tree -Doutput=jar包依赖树.txt
mvn dependency:tree -Dverbose -D outputFile=dependency_tree.txt
在这里插入图片描述

3.2单独查看该jar包依赖

mvn dependency:tree -Dverbose -Dincludes=org.slf4j:slf4j-nop

在这里插入图片描述
omitted for duplicate:有jar包被重复依赖

结合报错是org.slf4j存在使用冲突,排除该jar包

 <exclusions>
     <exclusion>
         <groupId>org.slf4j</groupId>
         <artifactId>log4j-over-slf4j</artifactId>
     </exclusion>
     <exclusion>
         <groupId>org.slf4j</groupId>
         <artifactId>slf4j-nop</artifactId>
     </exclusion>
     <exclusion>
         <groupId>org.slf4j</groupId>
         <artifactId>org.slf4j</artifactId>
     </exclusion>
 </exclusions>

4、使用命令说明

4.1 常用命令

https://blog.csdn.net/anita9999/article/details/106712163
mvn dependency:tree参数及其含义:在命令后面按照 -D参数名=参数值格式增加参数
参数意义

  • appendOutput:是将输出追加到输出文件还是覆盖输出文件,默认值为:false。
  • excludes,includes:通过逗号分离,格式[groupId]:[artifactId]:[type]:[version],支持通配符*
  • outputFile:指定输出文件路径
  • outputType:指定输出文件格式,默认text,还支持dot,graphml,tgf
  • verbose:把artifact的每处依赖都详细显示出来,可用来查看冲突和重复的具体情况

输出工程依赖关系
mvn dependency:tree
重定向至文本文件
mvn dependency:tree -D outputFile=dependency_tree.txt
mvn dependency:tree -Dverbose -D outputFile=dependency_tree.txt
mvn dependency:tree -Dverbose -Dincludes=org.slf4j:slf4j-nop

4.2 jar包依赖关系含义

在这里插入图片描述
1)最后写着compile的就是编译成功的。

2)最后写着omitted for duplicate的就是有jar包被重复依赖了,但是jar包的版本是一样的。

3)最后写着omitted for conflict with xxxx的,说明和别的jar包版本冲突了,而该行的jar包不会被引入。比如上面有一行最后写着omitted for conflict with 3.4.6,那么该行的zookeeper:jar:3.4.8不会被引入,会引入3.4.6版本

4)最后写着version managed from 2.3 ;omitted for duplicate ,表示最终使用commons-pool2最终会使用2.4.2,拒绝使用中声明的2.3版本

5)最后写着version managed from 1.16.8 ;表示最终使用lombok:jar:1.16.22版本

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值