Mehrere SLF4J-Bindungen Fehler verursachen?
Ich habe ein problem mit meinem Abhängigkeitsstruktur und mehrere SLF4J-binding. Was ich gefunden habe bisher ist, dass üblicherweise verursacht nur eine Warnung, aber in meinem Fall scheint es, zu verhindern, dass mein Programm ausgeführt wird:
Das sind die Ausnahmen, die ich bekomme:
SLF4J: Class-path enthält mehrere SLF4J-Bindungen.
SLF4J: Gefunden Bindung in [jar:file:/C:/Users/FischerNi/.m2/repository/org/slf4j/slf4j-jdk14/1.5.3/slf4j-jdk14-1.5.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Gefunden Bindung in [jar:file:/C:/Users/FischerNi/.m2/repository/org/slf4j/slf4j-log4j12/1.6.1/slf4j-log4j12-1.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Siehe http://www.slf4j.org/codes.html#multiple_bindings für eine Erklärung.
SLF4J: slf4j-api 1.6.x (oder höher) ist nicht kompatibel mit dieser verbindlich.
SLF4J: verbindlich ist die version 1.5.5 oder früher.
SLF4J: Aktualisieren Sie Ihre Bindung an die version 1.6.x. oder 2.0.x
Exception in thread "main" java.lang.NoSuchMethodError: org.slf4j.impl.StaticLoggerBinder.getSingleton()Lorg/slf4j/impl/StaticLoggerBinder;
- und das ist der relevante Teil meiner Abhängigkeiten:
net.lightbody.bmp
browsermob-proxy
2.0-beta-8
<!-- LOGGING DEPENDENCIES - LOG4J -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</dependency>
Kann jemand mir bitte sagen, wie dieses Problem zu beheben?
- Sie sind einschließlich
slf4j-log4j12
mehrmals (entweder direkt oder indirekt durch eine andere Abhängigkeit) mit verschiedenen Versionen (1.5.3 und 1.6.1, je nach Fehlermeldung). - slf4j.org/codes.html#multiple_bindings
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es paar Lösungen für dieses:
Wenn Ihr Projekt die Abhängigkeit von anderen Projekt, und der eine anderweitige Nutzung slf4j als auch mit der anderen version versuchen, excusion
Antwort von Fateh ist korrekt, ich hatte zu verbringen einige Zeit, um herauszufinden, wie es zu benutzen, das ist, warum ich bin das hinzufügen einer komplett-Lösung:
Laufen
mvn dependency:tree
finden Sie heraus, welche Bibliothek verwendet wird slf4j:
ausschließen von maven wie diese:
Ich würde vorschlagen, folgende Abhängigkeit in maven statt,
Dieser hat mein problem gelöst ich habe zwar mehr Abhängigkeiten mit slf4j.
Dies ist auftreten, wenn es mehr als ein Glas. Um zu überprüfen, ob es jar, bereits vorhanden ist oder nicht, gehen Sie zu Projekt -> java-Ressourcen -> maven-Abhängigkeiten und prüfen Sie, ob das Glas bereits vorhanden ist oder nicht . Wenn vorhanden und trotzdem bekommen Sie den Fehler . Dann finden Sie den Speicherort der jar-Datei .m2\resources-Ordner und löschen Sie komplette Ordner mit Bezug zu, dass die jar-Datei dann eine neue version herunterladen und importieren Sie es zu Ihrem Projekt . 🙂
Irgendwann bekomme ich Fehler, auch ich habe zum download die richtige jar-Datei mit der richtigen version in meine pom.xml Datei. Dann brauche ich, um es zu entfernen von meinem pom.xml und herunterladen, das jar von google und importieren Sie Sie in mein Projekt.Stellen Sie sicher, wenn Sie es tun, dann vergessen Sie nicht, gehen Sie Projekt Eigenschaften -> - Bereitstellung Baugruppe-tab->Klicken Sie auf Hinzufügen ->Java Build Path-Einträge, und Klicken Sie auf, dass die jar-Datei und Klicken Sie auf übernehmen .
Wenn mehrere Bindungen vorhanden sind, die auf die "class path", wählen Sie eine und nur eine Bindung, die Sie verwenden möchten, und entfernen Sie die anderen Bindungen.
Versuchen Sie explizit Hinzugefügt Abhängigkeit von 'org.slf4j' oder 'log4j2'.