解决slf4j 冲突

来源:互联网 发布:java求圆周率 编辑:程序博客网 时间:2024/06/05 09:09

可能出现的异常:

发现配置的logback.xml文件没有起作用,于是分析了一下启动log,发现log中出现了SLF4J冲突异常:

  1. SLF4J: Class path contains multiple SLF4J bindings.
  2. SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder”

原因分析:

既然是冲突,那可能就是项目中依赖了多个不同版本的slf4j类库,那如何分析到底是哪几个类库依赖了slf4j呢?我们可以使用dependency:tree命令:

$ mvn dependency:tree

解决:

经过依赖tree的分析,发现Zookeeper和Dubbo类库各自都引用了slf4j类库,于是使用<exclusions>标签排除掉传递依赖。

  <dependency>            <groupId>com.alibaba</groupId>            <artifactId>dubbo</artifactId>            <version>2.8.4</version>            <exclusions>                <exclusion>                    <groupId>org.slf4j</groupId>                    <artifactId>slf4j-log4j12</artifactId>                </exclusion>            </exclusions>        </dependency>        <dependency>            <groupId>org.apache.zookeeper</groupId>            <artifactId>zookeeper</artifactId>            <version>3.4.6</version>            <exclusions>                <exclusion>                    <groupId>org.slf4j</groupId>                    <artifactId>slf4j-log4j12</artifactId>                </exclusion>                <exclusion>                    <groupId>log4j</groupId>                    <artifactId>log4j</artifactId>                </exclusion>            </exclusions>        </dependency>

其它各种依赖冲突都可以使用这种方式解决。

0 0
原创粉丝点击