How to get rid von "Class-path enthält mehrere SLF4J-Bindungen" Warnung?
Dies ist mehr oder weniger eine "Allgemeine" Frage, aber ich habe nicht geschafft zu finden, dass eine gute Antwort noch. So, hier gibt es wieder die Warnung:
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/eualin/.m2/repository/org/slf4j/slf4j-jcl/1.6.0/slf4j-jcl-1.6.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/eualin/.m2/repository/org/slf4j/slf4j-log4j12/1.5.11/slf4j-log4j12-1.5.11.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
Hier sind zwei mögliche Lösungen für das problem [1][2].
Unter der Annahme, dass Sie beide für mich arbeiten, natürlich, Sie sind nur hacks, und ich bin nicht sicher, ob ich sollte sich auf jeden von Ihnen auf. Was würden Sie mir empfehlen? Beachten Sie, dass die Warnung nicht angezeigt, wenn im terminal, nur wenn ich die Anwendung ausführen durch IntelliJIDEA.
Jeder Vorschlag wird sehr geschätzt.
InformationsquelleAutor user706838 | 2013-02-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
SLF4J erwartet nur eine version von StaticLoggerBinder vorhanden sein, in jeder Anwendung Laufzeitumgebung. Wenn es mehr als einen, SLF4J nicht garantieren, dass die log-Nachrichten werden weitergeleitet an die entsprechende logger.
Die Architektur von SLF4J erfordert, dass nur eine Bibliothek verwendet werden zum weiterleiten von log-Meldungen (z.B.
slf4j-<logging framework>.jar
). Wenn mehrere classpath ' s sind in spielen, die über application Server, IDE, startup-scripts, etc., SLF4J Bibliotheken enthalten mehrere Male. Möglicherweise haben Sie zu jagen und zu picken, zu finden, wo der classpath ist, sind entweder Hinzugefügt oder geändert in IntelliJIDEA (wie in der Java-Compiler konfiguriert oder in irgendeiner startup-Konfigurationen).InformationsquelleAutor Snapman
Es ist vermutlich passiert, weil IntelliJIDEA ist das hinzufügen einer jener slf4j Bindung Gläser selbst. Meine Vermutung ist, passiert beim ausführen der unit tests. So ein Ansatz würde sehen, ob Sie ausschließen kann, dass andere JAR in den launcher configs für die Unit-test-runner.
Aber am Ende des Tages, diese Warnung ist harmlos und man könnte Sie einfach ignorieren.
Dies ist eindeutig eine runtime-classpath-Problem. Sie müssen sicherstellen, dass die IntelliJIDEA ist nicht setzen die beiden JARs in den Klassenpfad beim Start der Anwendung. Ich würde damit beginnen, indem man die POM-Datei und die Abhängigkeiten, die es gibt.
InformationsquelleAutor Stephen C
In meinem speziellen Fall, ich habe diesen Fehler in
IntelliJ IDEA
und erfrischend Gradle fixiert diesen Fehler:Finden Sie in diesem Fenster aus
View..Tool Windows..Gradle
.Unserem setup ist:
InformationsquelleAutor Contango