簡體   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