264

次のエラーが表示されます。複数のロギング フレームワークが slf4j にバインドされているようです。これを解決する方法がわかりません。どんな助けでも大歓迎です。

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/C:/Users/admin/.m2/repository/org/slf4j/slf4j-log4j12/1.6.4/slf4j-log4j12-1.6.4.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/Users/admin/.m2/repository/org/slf4j/slf4j-log4j12/1.6.1/slf4j-log4j12-1.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
4

17 に答える 17

155

競合の原因となった依存関係 (pom.xml の) に次の除外を追加することで解決しました。

<exclusions>
    <exclusion>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
    </exclusion>
</exclusions> 
于 2014-03-25T15:08:30.597 に答える
30

エラーは、おそらくこのような詳細情報を提供します (ただし、jar 名は異なる場合があります)。

SLF4J: [jar:file:/D:/Java/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar!/org/slf4j/impl/StaticLoggerBinder でバインドが見つかりました.class] SLF4J: [jar:file:/D:/Java/repository/org/apache/logging/log4j/log4j-slf4j-impl/2.8.2/log4j-slf4j-impl-2.8.2.jar でバインドが見つかりました!/org/slf4j/impl/StaticLoggerBinder.class]

競合は、 と という名前の 2 つの jar に起因することに注意してlogback-classic-1.2.3くださいlog4j-slf4j-impl-2.8.2.jar

mvn dependency:treeこのプロジェクトの pom.xml 親フォルダーで実行し、以下を指定します。

依存関係ツリーの競合

無視したいものを選択してください(繊細な努力を消費する可能性があります。これについてはもっと助けが必要です)

spring-boot-starter-data-jpa(最上位の依存関係)からインポートされたものを使用しないことにしましたspring-boot-starterspring-boot-starter-loggingpom は次のようになります。

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

上記のpomでは、同じファイルで構成されたspring-boot-starter-data-jpaを使用しますが、除外されます(含まれています) spring-boot-starterlogginglogback

于 2018-03-14T04:19:26.563 に答える
11

Sbt バージョン:

exclude("org.slf4j", "slf4j-log4j12")を推移的に含む依存関係に追加しますslf4j-log4j12。たとえば、Log4j 2.6 で Spark を使用する場合:

libraryDependencies ++= Seq(
  // One SLF4J implementation (log4j-slf4j-impl) is here:
  "org.apache.logging.log4j" % "log4j-api" % "2.6.1",
  "org.apache.logging.log4j" % "log4j-core" % "2.6.1",
  "org.apache.logging.log4j" % "log4j-slf4j-impl" % "2.6.1",
  // The other implementation (slf4j-log4j12) would be transitively
  // included by Spark. Prevent that with exclude().
  "org.apache.spark" %% "spark-core" % "1.5.1" exclude("org.slf4j", "slf4j-log4j12")
)
于 2016-06-28T11:18:11.183 に答える
-5

.m2 ディレクトリと :

mvn install -DskipTests -T 4この問題を解決しました。

于 2015-10-07T18:42:07.567 に答える