maven依赖包冲突解决办法

Posted pclover11

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了maven依赖包冲突解决办法相关的知识,希望对你有一定的参考价值。

今天在写一个demo时报了以下错误

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/D:/chengxu/mavenRepository/org/slf4j/slf4j-log4j12/1.7.25/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/D:/chengxu/mavenRepository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
log4j:WARN No appenders could be found for logger (us.codecraft.webmagic.scheduler.QueueScheduler).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

 

一看就是 SLF4J 依赖冲突,查看一下有哪些包依赖了 SLF4J

使用命令:

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

输出如下

[INFO] --- maven-dependency-plugin:3.0.1:tree (default-cli) @ stock ---
[INFO] Verbose not supported since maven-dependency-plugin 3.0
[INFO] com.huitong:stock:pom:1.0-SNAPSHOT
[INFO] +- us.codecraft:webmagic-core:jar:0.7.3:compile
[INFO] |  +- org.slf4j:slf4j-api:jar:1.7.25:compile
[INFO] |  \- org.slf4j:slf4j-log4j12:jar:1.7.25:compile
[INFO] \- org.springframework.boot:spring-boot-starter-aop:jar:2.0.0.RELEASE:compile
[INFO]    \- org.springframework.boot:spring-boot-starter:jar:2.0.0.RELEASE:compile
[INFO]       \- org.springframework.boot:spring-boot-starter-logging:jar:2.0.0.RELEASE:compile
[INFO]          \- org.slf4j:jul-to-slf4j:jar:1.7.25:compile

可以看到webmagic-core 和 springboot-starter-aop 相冲突,所以在 pom 文件修改

<dependency>
      <groupId>us.codecraft</groupId>
      <artifactId>webmagic-core</artifactId>
      <version>0.7.3</version>
      <exclusions>
        <exclusion>
          <groupId>org.slf4j</groupId>
          <artifactId>slf4j-log4j12</artifactId>
        </exclusion>
        <exclusion>
          <groupId>log4j</groupId>
          <artifactId>log4j</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

再运行即可

 

以上是关于maven依赖包冲突解决办法的主要内容,如果未能解决你的问题,请参考以下文章

如何解决包冲突问题

maven依赖冲突以及解决方法

如何删除maven中冲突的jar包

maven——依赖管理

maven依赖包冲突解决思路

Maven依赖jar包版本冲突解决方案