繁体   English   中英

SLF4J:类路径包含多个SLF4J绑定。 摆脱束缚

[英]SLF4J: Class path contains multiple SLF4J bindings. Cant get rid of binding

所以,

我再次完全被这个错误所困扰..我读过几个关于这个问题的话题,但是无法解决..

SLF4J: Found binding in [jar:file:/home/me/.m2/repository/org/apache/logging/log4j/log4j-slf4j-impl/2.10.0/log4j-slf4j-impl-2.10.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/me/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]

mvndependency:tree给出以下内容:

[INFO] +- org.springframework.boot:spring-boot-starter-data-jpa:jar:2.0.3.RELEASE:compile
[INFO] |  +- org.springframework.boot:spring-boot-starter:jar:2.0.3.RELEASE:compile
[INFO] |  |  +- org.springframework.boot:spring-boot:jar:2.0.3.RELEASE:compile
[INFO] |  |  +- org.springframework.boot:spring-boot-autoconfigure:jar:2.0.3.RELEASE:compile
[INFO] |  |  +- org.springframework.boot:spring-boot-starter-logging:jar:2.0.3.RELEASE:compile
[INFO] |  |  |  +- ch.qos.logback:logback-classic:jar:1.2.3:compile
[INFO] |  |  |  |  \- ch.qos.logback:logback-core:jar:1.2.3:compile
[INFO] |  |  |  \- org.apache.logging.log4j:log4j-to-slf4j:jar:2.10.0:compile

据我了解,一个实例位于starter-data-jpa下并位于文件夹.m2 / ch / qos中

但我无法删除该文件夹,否则该应用程序将无法启动。

我似乎也不能排除它。

       <exclusions>
            <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
            </exclusion>
        </exclusions>

排除后,我运行mvn clean并重新导入所有依赖项,但仍然无法启动。

当我删除整个

<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

部分,它现在位于[INFO] +- org.springframework.boot:spring-boot-starter-jdbc:jar:2.0.3.RELEASE:compile

根据mvn dependency:tree和应用程序仍然无法启动,同样的错误。

那么我该如何摆脱这件事呢?

我不知道这是怎么发生的。 我已经有数周没有添加或删除pom中的任何内容了。

决定排除所有日志记录框架,以便在任何地方都不再有不需要的记录器...它可以工作

        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-logging</artifactId>
            </exclusion>
        </exclusions>

这个问题长期存在。 解决此问题的最佳方法是执行以下步骤:

  1. 查找Maven依赖项。 搜索log4j-slf4j。 该库可以来自多个依赖项。 我不想删除spring-boot-starter-logging,因为它会影响常规的漂亮spring日志。 如何获得工件的依赖树?

    mvn依赖项:树

  2. 排除依赖项。 您必须能够找到一个或多个具有相同库的依赖项。 我仅在kafka-avro-serializer中具有slf4j-log4j12,因此我将其排除在外。 如果您的mvn依赖关系树显示了更多,请确保将其排除在外。

      <dependency> <groupId>io.confluent</groupId> <artifactId>kafka-avro-serializer</artifactId> <version>4.0.0</version> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> </exclusions> </dependency> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM