FEHLER SLF4J: Class-path enthält mehrere SLF4J-Bindungen jenkins cobertura maven
Bin ich mit diesem Fehler auf den Dritten Tag schon, und ich kann nicht gelöst. Es ist etwas, das ich nicht begreifen kann und egal was ich mache der Fehler immer noch besteht.
Lese ich ein Buch namens "Jenkins eine definitive guide" (http://www.wakaleo.com/books/jenkins-the-definitive-guide) und ich bin stecken geblieben auf Kapitel zwei. Im Grunde ist ein Beispiel, wie Jenkins mit Javadoc, JUnit und Cobertura plugin für Jenkins. Alles funktioniert, bis ich zu Cobertura plugin Teil, wo ich den nächsten Fehler:
[ERROR] SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/C:/Windows/System32/config/systemprofile/.m2/repository/ch/qos/logback/logback-classic/1.0.13/logback-classic-1.0.13.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/Windows/System32/config/systemprofile/.m2/repository/org/slf4j/slf4j-simple/1.6.1/slf4j-simple-1.6.1.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 [ch.qos.logback.classic.util.ContextSelectorStaticBinder]
Ich habe gesehen, andere Probleme, wie mir, und die Schlussfolgerung, die ich habe ist, dass ich entweder zu gehören o exclude-Abhängigkeit in meinem pom.xml -Datei/en (dieses Beispiel verwendet nur pom Dateien in diesem Stadium). Meine pom.xml Datei slf4j-simple sieht wie folgt aus:
<project>
......
<dependencies>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.6.1</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.6.1</version>
</dependency>
</dependencies>
</project>
und es ist keine explizite Abhängigkeit zu logback-classic daher weiß ich nicht, in welche Abhängigkeit verwendet wird. Ich habe versucht mit dependency-plugin für jenkins und ich bekam dieses Ergebnis:
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ gameoflife-web ---
[INFO] com.wakaleo.gameoflife:gameoflife-web:war:1.0-SNAPSHOT
[INFO] +- com.wakaleo.gameoflife:gameoflife-core:jar:1.0-SNAPSHOT:compile
[INFO] +- org.springframework:spring-webmvc:jar:3.0.2.RELEASE:compile
[INFO] | +- org.springframework:spring-asm:jar:3.0.2.RELEASE:compile
[INFO] | +- org.springframework:spring-beans:jar:3.0.2.RELEASE:compile
[INFO] | +- org.springframework:spring-context:jar:3.0.2.RELEASE:compile
[INFO] | | \- org.springframework:spring-aop:jar:3.0.2.RELEASE:compile
[INFO] | +- org.springframework:spring-context-support:jar:3.0.2.RELEASE:compile
[INFO] | \- org.springframework:spring-expression:jar:3.0.2.RELEASE:compile
[INFO] +- org.springframework:spring-core:jar:3.0.2.RELEASE:compile
[INFO] | \- commons-logging:commons-logging:jar:1.1.1:compile
[INFO] +- org.springframework:spring-web:jar:3.0.2.RELEASE:compile
[INFO] | \- aopalliance:aopalliance:jar:1.0:compile
[INFO] +- javax.servlet:jstl:jar:1.2:compile
[INFO] +- javax.servlet:servlet-api:jar:2.5:provided
[INFO] +- org.mockito:mockito-all:jar:1.8.5:test
[INFO] +- org.easytesting:fest-assert:jar:1.4:compile
[INFO] | \- org.easytesting:fest-util:jar:1.1.6:compile
[INFO] +- org.slf4j:slf4j-simple:jar:1.6.1:compile
[INFO] +- org.slf4j:slf4j-api:jar:1.6.1:compile
[INFO] +- junit:junit:jar:4.11:test
[INFO] | \- org.hamcrest:hamcrest-core:jar:1.3:test
[INFO] \- org.hamcrest:hamcrest-all:jar:1.1:test
Vielleicht bin ich ja blind, aber ich kann immer noch nicht sehen wer nutzt logback-classic (by the way ich bin nicht sicher, welche Werte richtig sind für und für logback-classic).
Ich versucht zu entfernen, die slf4j Abhängigkeit ist und ich die Fehlermeldung Weg, aber ich bekomme keine cobertura berichten. Ich habe versucht, um auszuschließen logback-classic mit
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.6.1</version>
<exclusions>
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.6.1</version>
<exclusions>
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</exclusion>
</exclusions>
</dependency>
und der Fehler besteht weiterhin.
Ich weiß nicht mehr was tun bitte um Hilfe!!
Ja, es kann eine mögliche doppelte, wenn ich weiß, für sicher, ich werde es aktualisieren.
Ich habe das gleiche problem, obwohl die jenkin-Aufträge sind erfolgreich ausgeführt und der docker-Dienst nicht ausgeführt wird jetzt mit einer verbindlichen Problem wie oben gezeigt. Irgendwelche Lösungen gefunden
Ich bezweifle, dass dein problem hat etwas mit diesem zu tun, 3 Jahre in der Vergangenheit, wird dies nicht aktualisiert.
InformationsquelleAutor Pavel Nichita | 2015-05-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die gute Nachricht ist, dass selbst wenn SLF4J meldet einen Fehler, es ist eigentlich warnen Sie, dass die SLF4J gebunden wird
ch.qos.logback.classic.util.ContextSelectorStaticBinder
da gibt es zwei Bindungen zur Verfügung, die auf die Klasse path. SLF4J holt den ersten verfügbaren Klasse Weg. Ihre Bewerbung sollte weiterhin nur gut funktionieren, wenn auch die Protokollierung mit logback.Ich kann nicht sagen, warum logback-classic.jar wird auf der Klasse Weg, aber ich schlage vor, Sie untersuchen das "System-Profil" erwähnt in den class-path.
InformationsquelleAutor Ceki
Du versuchen auszuschließen, die logback-classic " aus der slf Abhängigkeit selbst. Das Problem ist, dass wie bereits erwähnt hier, Sie wurden mit mehr als einer Bindung in Ihrer Klasse Weg. Der Weg ist zu halten den Ausschluss für logback-classic, in der Abhängigkeit, die es verwendet, und nicht in Ihrem slf4j Abhängigkeit. Leider bin ich nicht sicher, welche Ihrer Gläser, sind mit einem Verweis auf slf4j, die das Problem verursacht. Ein workaround ist, verwenden Sie Strg+Sft+T zu sehen, die Existenz der StaticLoggerBinder Klasse, in verschiedene Gläser, und legen Sie die logback-classic Ausgrenzung. Andere umgehen ist, können Sie versuchen, halten Ausgrenzung, als Versuch und Irrtum. Dies sind nur work around, aber das Konzept ist das gleiche. Wir brauchen andere Abhängigkeit, die hat Referenz auf logback-classic in der classpath -
Es wird verwendet, um die Suche in der Ressourcen-vorkommen im Arbeitsbereich, inklusive der Gläser.
Ich habe gerade versucht mit Strg+Sft+T und StatigLoggerBinder nicht angezeigt. Eine der Schwierigkeiten, die ich habe, ist, dass code ist nicht von mir, ist aus dem Buch, ich habe alle Pakete, wo fehlt (zumindest alle die ich finden konnte), und ich habe kein Glück. Ich glaube, ich sollte trie trial-and-error-Methode. Gibt es andere Möglichkeiten, um herauszufinden, rerefences? Vielen Dank.
InformationsquelleAutor Ramzy