2014-04-06 12 views
18

Ich bekomme folgende Ausnahme während der Kompilierung meines Java-Codes. Bitte einige Körper, wie dieser Konflikt gelöst werden kann.Maven SLF4J: Klassenpfad enthält mehrere SLF4J-Bindungen

SLF4J: Class path contains multiple SLF4J bindings. 
SLF4J: Found binding in [jar:file:/C:/Users/Air/Desktop/sms/slf4j-1.7.7/slf4j-android-1.7.7.jar!/org/slf4j/impl/StaticLoggerBinder.class] 
SLF4J: Found binding in [jar:file:/C:/Users/Air/Desktop/sms/slf4j-1.7.7/slf4j-jcl-1.7.7.jar!/org/slf4j/impl/StaticLoggerBinder.class] 
SLF4J: Found binding in [jar:file:/C:/Users/Air/Desktop/sms/slf4j-1.7.7/slf4j-jdk14-1.7.7.jar!/org/slf4j/impl/StaticLoggerBinder.class] 
SLF4J: Found binding in [jar:file:/C:/Users/Air/Desktop/sms/slf4j-1.7.7/slf4j-log4j12-1.7.7.jar!/org/slf4j/impl/StaticLoggerBinder.class] 
SLF4J: Found binding in [jar:file:/C:/Users/Air/Desktop/sms/slf4j-1.7.7/slf4j-nop-1.7.7.jar!/org/slf4j/impl/StaticLoggerBinder.class] 
SLF4J: Found binding in [jar:file:/C:/Users/Air/Desktop/sms/slf4j-1.7.7/slf4j-simple-1.7.7.jar!/org/slf4j/impl/StaticLoggerBinder.class] 
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. 
SLF4J: Actual binding is of type [org.slf4j.impl.AndroidLoggerFactory] 
Exception in thread "main" java.lang.ExceptionInInitializerError 
Caused by: java.lang.RuntimeException: Fatal error in constructor! 
    ... 2 more 
+0

Haben Sie Installationsanweisungen für slf4j finden folgen? –

Antwort

48

Run mvn dependency:tree und Suche alle nicht notwendigen diejenigen auszuschließen, die Abhängigkeit des slf4j Implementierungen Sie nicht wollen, dann ausschließen sie mit einer Abhängigkeit Ausgrenzung wie:

<dependency> 
    <groupId>org.someexternallib</groupId> 
    <artifactId>someexternallibartifact</artifactId> 
    <version>...</version> 

    <exclusions> 
     <exclusion> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-log4j12</artifactId> 
     </exclusion> 
     <exclusion> 
      <groupId>log4j</groupId> 
      <artifactId>log4j</artifactId> 
     </exclusion> 
    </exclusions> 
</dependency> 
+3

Diese Frage ist alles über Stack-Overflow, aber das war endlich das, was ich brauchte! – mayhewsw

+0

Wie kann die Bindung zur Laufzeit ausgeschlossen werden, wenn die Bindung vom externen Klassenpfad kommt? – nir

+0

Sie wollen es zur Kompilierzeit, aber zur Laufzeit ausgeschlossen? – Wouter

5

Es scheint, dass Sie mehrere Implementierung von SLF4J haben; Sie sollten

3

Dieser Fehler bedeutet, dass Sie haben Sie mehrere Implementierungen von SLF4J in Ihrem Klassenpfad. Suchen Sie, was die Fehler spezifisch sagen. SLf4J: Found binding in..... (Dadurch werden alle JAR-Dateien gedruckt, in denen Instanzen von StaticLoggerBinder.class gefunden wurden). Beseitigen Sie alle derartigen Dateien aus Ihrem Klassenpfad, außer dem Jar, dessen StablicLoggerBinder.class-Implementierung Sie benötigen.

1

können Sie gehen zu pom.xml, offene Abhängigkeitshierarchie und slf4j entries.Except eine schließt Rest von ihnen durch einen Rechtsklick „ausschließen Maven Artefakt“

+0

In welcher IDE kann ich das tun? – opncow

Verwandte Themen