- Odnośnie Eclipse IDE ( Indigo , Juno i Kepler (wersje 32 i 64 bitowe))
- Platformy : Windows , Ubuntu , Mac
- wersja m2e : 1.1.0.20120530-0009 , 1.2.0.20120903-1050 , 1.3.0.20130129-0926 ,
1.4.0.20130601-0317
Ogólne informacje
Powyższy błąd pojawił się po aktualizacji m2e do wersji 1.1. Po usunięciu m2e 1.1 i przywróceniu m2e 1.0 wszystko działało dobrze. Próbowałem powtórzyć problem w systemie Windows i Ubuntu i dało mi to dokładnie ten sam błąd. Przetestowano wiele konfiguracji slf4j-api i logback, ale żadna z nich nie działa.
Błąd pojawia się w każdym projekcie maven nawet bez deklarowania zależności slf4j .
Nowy projekt Maven -> maven-archetype-quickstart
i
New Maven Project -> Prosty projekt bez wyboru archetypu
wynik do
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
Środowiska testowe i konfiguracje
Testowane z Eclipse Indigo i Eclipse Juno (zarówno 32-bitowe, jak i 64-bitowe) na komputerach Mac, 32-bitowe w systemie Ubuntu oraz 64 i 32-bitowe w systemie Windows. Przetestowano nowe instalacje Juno Classic , narzędzi Juno Modeling , Kepler Standard , Kepler Modeling Tools i wygenerowałem ten sam błąd.
Błąd pojawia się przy czyszczeniu , instalowaniu , testowaniu , wdrażaniu , generowaniu źródeł , sprawdzaniu poprawności , kompilowaniu , pakowaniu , testowaniu integracji , weryfikacji i kombinacjach celu czystego z pozostałymi celami. Występuje również z parametrami -e i -X . Podjęto próbę usunięcia repozytorium m2e i pobrania go od zera, ale ponownie bez powodzenia. Powinienem wspomnieć, że został przetestowany na 3 różnych maszynach i wirtualnym pudełku we wszystkich powyższych systemach, ale spowodował ten sam błąd.
Wypróbowano wszystkie różne konfiguracje logowania zwrotnego (od 1.0.4 do 1.0.13), które rozwiązują zależności slf4j-api i logback-core , ale wszystkie powodują ten sam błąd:
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version></version>
</dependency>
Wypróbowałem wszystkie różne (od 1.6.1 do 1.7.5) konfiguracje slf4j-simple .
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version></version>
<scope>compile</scope>
</dependency>
Wypróbowano wszystkie różne (od 1.6.1 do 1.7.5) konfiguracje log4j-over-slf4j .
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>log4j-over-slf4j</artifactId>
<version></version>
<scope>compile</scope>
</dependency>
Wypróbowałem wszystkie różne (od 1.6.1 do 1.7.5) konfiguracje slf4j-jdk14 .
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-jdk14</artifactId>
<version></version>
<scope>compile</scope>
</dependency>
Wypróbowano wszystkie różne (od 1.6.1 do 1.7.5) konfiguracje slf4j-log4j12 .
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version></version>
<scope>compile</scope>
</dependency>
Wypróbowana konfiguracja slf4j-nop 1.7.5 .
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-nop</artifactId>
<version>1.7.5</version>
<scope>compile</scope>
</dependency>
Co nie mniej ważne, dzienniki są zapisywane i drukowane pomimo błędu.
Sposoby odtworzenia błędu
Pobierz Eclipse Juno, Indigo lub Kepler 32 lub 64 bit (wszystkie instalacje spowodują ten sam błąd).
Zainstaluj m2e - Maven Integration for Eclipse
- Juno - http://download.eclipse.org/releases/juno
- Kepler - http://download.eclipse.org/releases/kepler
- Indigo - http://download.eclipse.org/technology/m2e/releases/ ( obecnie niedostępne )
LUB
Zaktualizuj swoją wersję m2e do 1.1.0.20120530-0009 , lub 1.2.0.20120903-1050 lub 1.3.0.20130129-0926 lub 1.4.0.20130601-0317 )
Wybierz Plik-> Nowy-> Inne-> Projekt Maven-> Kliknij Dalej-> Wybierz
maven-archetype-quickstart z katalogu-> ZakończLUB
Wybierz Plik-> Nowy-> Inne-> Projekt Maven-> Kliknij Dalej-> Wybierz Utwórz prosty projekt (pomiń wybór archetypu) -> Kompletne informacje o artefakcie-> Zakończ
- Kliknij prawym przyciskiem myszy projekt -> Uruchom jako -> czysta instalacja (lub inny cel wymieniony powyżej)
Pierwsza linia konsoli to
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
PS Istniejące projekty spowodują ten sam błąd po aktualizacji wersji m2e do 1.1.0.20120530-0009 , 1.2.0.20120903-1050 , 1.3.0.20130129-0926 , 1.4.0.20130601-0317
Aktualizacje
EDYTOWAĆ
Strona wsparcia m2e:
Powyższe pytanie zostało opublikowane jako błąd na stronie wsparcia m2e i odpowiedź Igora Fedorenko była taka
Nie ma bezpośrednich planów usunięcia tej wiadomości.
Aby wyświetlić powyższy błąd, odwiedź oficjalną stronę pomocy m2e
EDYCJA 2
- Powyższe wskazanie błędu występuje również w m2e w wersji 1.2.0.20120903-1050
EDYCJA 3
- Powyższe wskazanie błędu występuje również w m2e w wersji 1.3.0.20130129-0926
EDYCJA 4
- Powyższe wskazanie błędu występuje również w m2e w wersji 1.4.0.20130601-0317
EDYCJA 5
***Reported FIXED***
- Powyższy błąd jest zgłaszany jako naprawiony dla m2e w wersji 1.5.0 / Luna M3 ( docelowy kamień milowy ). Wersja nie jest jeszcze dostępna do pobrania.
- Luna M3 jest zaplanowana na 15 listopada .
- Najnowsza wersja deweloperska jest dostępna tutaj
- Więcej informacji o kamieniach milowych m2e można znaleźć w głównym repozytorium m2e .
slf4j
w obuslf4j-api-1.7.7
ijcl-over-slf4j-1.7.7
jeśli próbuję usunąć którekolwiek z nich, pojawia się komunikat o błędzie informujący, żeLogger
brakuje ich klasy. Co powinienem zrobić?Odpowiedzi:
Mogę również potwierdzić ten błąd.
Obejście: polega na użyciu zewnętrznego mavena wewnątrz m2eclipse zamiast jego osadzonego mavena.
Odbywa się to w trzech krokach:
1 Zainstaluj mavena na komputerze lokalnym ( maszyną testową był Ubuntu 10.10)
2 Uruchom mavena z zewnętrznym łączem, jak uruchomić mavena z konsoli
3 wewnątrz m2eclipse: przełącz się z wbudowanego mavena na lokalny maven
mvn --version
lub google dla ciebieMAVEN_HOME
, dla mnie to pomogło mi to znaczy/usr/share/maven2
)Komunikat o błędzie powinien zniknąć.
źródło
#mvn --version
wygodnie jest pokazać MAVEN_HOME.W witrynie SLf4J znajduje się dokumentacja, aby rozwiązać ten problem. Poszedłem za tym i dodałem slf4j-simple-1.6.1.jar do mojej aplikacji wraz z slf4j-api-1.6.1.jar, który już miałem. To rozwiązało mój problem
slf4j
źródło
Jeśli używasz Gradle, dodaj to:
źródło
Wystąpił podobny błąd z tym samym wynikiem z Gradle i był w stanie rozwiązać go, wykonując następujące czynności:
Linia bez komentarza to ta, która spowodowała błąd. Wierzę, że możesz to przenieść do Mavena.
źródło
Nie
podałeś wersji w swoim pliku zależności maven, być może dlatego nie wybiera najnowszego pliku jar. Potrzebujesz też innej zależności z
slf4j-log4j12
identyfikatorem artefaktu.Uwzględnij to w swoim pliku pom
Daj mi znać, jeśli błąd nadal nie został rozwiązany.
Polecam również wyświetlenie tego linku
źródło
Wklej ten kod do pliku pom.xml. Mi to pasuje.
źródło
Przeszukał problem, gdy go ujawnił. Uwierz, że będzie to dobra lektura dla innych, którzy przychodzą tutaj z tym samym problemem:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=387064
źródło
Miałem podobny problem z moją aplikacją Spring Boot - Gradle działającą na Eclipse Luna. Mogłem rozwiązać ten problem, ręcznie dodając wpis do ścieżki .classpath mojego projektu
Chodzi o to, aby zastosować to rozwiązanie. Ale sposób wdrożenia zależy od przypadku. Jednym ze sposobów mocowania jest ten, którego użyłem powyżej.
Mam nadzieję że to pomoże.
źródło
To nie jest komunikat o błędzie, ale ostrzeżenie. Na ich stronie internetowej jest to bardzo jasno wyjaśnione jako:
To ostrzeżenie, tj. Komunikat nie jest błędem, jest zgłaszane, gdy nie można znaleźć dostawców SLF4J na ścieżce klasy. Umieszczenie jednego (i tylko jednego) pliku slf4j-nop.jar slf4j-simple.jar, slf4j-log4j12.jar, slf4j-jdk14.jar lub logback-classic.jar na ścieżce klas powinno rozwiązać problem. Pamiętaj, że ci dostawcy muszą kierować reklamy na slf4j-api 1.8 lub nowszy.
W przypadku braku dostawcy SLF4J będzie domyślnie dostawcą rejestratora braku operacji (NOP).
https://www.slf4j.org/codes.html#StaticLoggerBinder
źródło
Miałem ten sam problem pisząc program producenta Kafki przy użyciu javy. Ten błąd występuje z powodu niewłaściwej biblioteki slf4j. użyj poniżej zależności slf4j-simple maven, która naprawi twój problem.
źródło