Otrzymuję następujący błąd. Wygląda na to, że istnieje wiele ram rejestrowania powiązanych z sl4j. Nie wiesz, jak to rozwiązać. Każda pomoc jest mile widziana.
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.
<exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> </exclusions>
w zależnościach (pom.xml), które spowodowały konflikt, pomogło rozwiązać problemOdpowiedzi:
Rozwiązany przez dodanie następującego wyłączenia w zależnościach (pom.xml), które spowodowały konflikt.
źródło
slf4j-log4j12
) ma zastosowanie do wszystkich? czy powinniśmy znaleźć wersję z zależności mvn: drzewo ?Wersja stopniowa;
źródło
Błąd prawdopodobnie daje więcej takich informacji (chociaż nazwy słoików mogą być inne)
Zauważyłem, że konflikt pochodzi z dwóch słoików o nazwach
logback-classic-1.2.3
ilog4j-slf4j-impl-2.8.2.jar
.Uruchom
mvn dependency:tree
w tym projekcie folder nadrzędny pom.xml, podając:Teraz wybierz ten, który chcesz zignorować (może pochłonąć delikatne przedsięwzięcie, potrzebuję w tym więcej pomocy)
Postanowiłem nie korzystać z jednego z importowaną
spring-boot-starter-data-jpa
(zależność TOP) poprzezspring-boot-starter
i dziękispring-boot-starter-logging
, POM staje się:powyżej pom
spring-boot-starter-data-jpa
użyłbyspring-boot-starter
skonfigurowanego w tym samym pliku, co wykluczalogging
(zawieralogback
)źródło
mvn dependency:tree
. Jest to bardzo pomocne ...Wersja SBT:
Dołącz
exclude("org.slf4j", "slf4j-log4j12")
do zależności, która obejmuje tranzytowoslf4j-log4j12
. Na przykład podczas korzystania z Spark z Log4j 2.6:źródło
Rozwiązałem, usuwając to: spring-boot-starter-log4j2
źródło
Właśnie zignorowałem / usunąłem ten plik jar.
źródło
Wystarczy użyć tylko wymaganej zależności, nie wszystkich :))). Dla mnie do normalnej pracy procesu rejestrowania potrzebna jest ta zależność, wyklucz inne z pom.xml
źródło
Jest to problem, ponieważ klasa StaticLoggerBinder.class należy do dwóch różnych słoików. ta klasa odwołuje się do logback-classic-1.2.3.jar i ta sama klasa odwołuje się również z log4j-slf4j-impl-2.10.0.jar. oba słoiki w ścieżce klas. Stąd między nimi jest konflikt. Z tego powodu plik dziennika nie jest generowany, mimo że plik log4j2.xml w ścieżce klasy [src / main / resource].
Mamy więc jeden ze słoików, zalecam użycie pliku log4j-slf4j-impl-2.10.0.jar i wykluczenie pliku logback-classic-1.2.3.jar. Rozwiązanie: otwórz plik pom i wyświetl hierarchię zależności [zaćmienie] lub uruchom polecenie
mvn dependency: tree, aby znaleźć drzewo zależności i źródło zależności, które pobierają zależność. znajdź sprzeczną zależność i wyklucz je. W przypadku aplikacji Springboot spróbuj tego.
źródło
... org.codehaus.mojo cobertura-maven-plugin 2.7 test ch.qos.logback logback-classic narzędzia com.sun ...
## Naprawiłem to
... org.codehaus.mojo cobertura-maven-plugin 2.7 test ch.qos.logback logback-classic narzędzia com.sun ...
źródło
Dla mnie okazało się to problemem Eclipse / Maven po zmianie z log4j na logback. Przejrzyj swój
.classpath
plik i wyszukaj ciąg"log4j"
.W moim przypadku miałem tam następujące:
<classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-log4j12/1.7.1/slf4j-log4j12-1.7.1.jar"/> <classpathentry kind="var" path="M2_REPO/log4j/log4j/1.2.17/log4j-1.2.17.jar" />
Usunięcie tych wpisów z pliku (lub można je ponownie wygenerować) rozwiązało problem.
źródło
Dla mnie odpowiedzią było wymuszenie odbudowy Maven. W środowisku Eclipse:
źródło
Miałem ten sam problem. W moim pom.xml miałem oba
Kiedy usunąłem zależność Spring-Boot-Starter-Web, problem został rozwiązany.
źródło
Połączenie
<scope>provided</scope>
i<exclusions>
nie działało dla mnie.Musiałem użyć tego:
Gdzie
empty.jar
jest plik jar z dosłownie niczym.źródło
Wygląda na usunięcie katalogu .m2 i:
mvn install -DskipTests -T 4
rozwiązałem ten problem dla mnie.źródło