SLF4J: не удалось загрузить класс " org.slf4j.осущ.StaticLoggerBinder". ошибка
- о Eclipse IDE (Индиго,Юнона и Кеплер (32 и 64-битных версий))
- платформы: Windows,Ubuntu,Mac
-
версия m2e:1.1.0.20120530-0009,1.2.0.20120903-1050, 1.3.0.20130129-0926,
1.4.0.20130601-0317
Общая информация
вышеуказанная ошибка возникла после обновления m2e до версии 1.1. удалив m2e 1.1 и откатившись до m2e 1.0 все работало нормально. я попытался повторить проблему в Windows и Ubuntu, и это дало мне точно такую же ошибку. Были протестированы многочисленные конфигурации slf4j-api и logback но никто, кажется, не работает.
ошибка появляется в любом проекте maven даже без объявления зависимости slf4j.
-
новый проект Maven--> maven-archetype-quickstart
и
-
новый проект Maven--> простой проект без выбора архетипа
результат
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
испытательные среды и конфигурации
протестировано с Eclipse Indigo и Eclipse Juno (32 и 64 бит оба) на Mac, 32 бит на Ubuntu и 64 и 32 бит на Windows. Протестированы свежие установки Juno Classic,Юнона инструменты моделирования,Стандартные Кеплер,Инструменты Моделирования Кеплера и произвел ту же ошибку.
ошибка очистить,установить,тест, развернуть, generate-sources,проверка,compile,пакета,integration-test,проверка и комбинации цели чистые с остальными целями. Он появляется также с параметрами - e и - X. Была попытка удалить репозиторий m2e и загрузить его с нуля, но снова без успеха. Следует сказать, что он был протестирован в 3 различные машины и виртуальная коробка все вышеперечисленные системы, но он произвел ту же ошибку.пробовал все разные logback конфигурации (от 1.0.4 до 1.0.13), которые разрешают slf4j-api и logback-core зависимости, но все они приводят к одной и той же ошибке:
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version></version>
</dependency>
пробовал все разные (от 1.6.1 до 1.7.5 ) slf4j-простой конфигурации.
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version></version>
<scope>compile</scope>
</dependency>
пробовал все разные (от 1.6.1 до 1.7.5 ) log4j-over-slf4j конфигурации.
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>log4j-over-slf4j</artifactId>
<version></version>
<scope>compile</scope>
</dependency>
пробовал все разные (от 1.6.1 до 1.7.5 ) slf4j-jdk14 конфигурации.
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-jdk14</artifactId>
<version></version>
<scope>compile</scope>
</dependency>
пробовал все разные (от 1.6.1 до 1.7.5 ) slf4j-log4j12 конфигурации.
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version></version>
<scope>compile</scope>
</dependency>
пробовал slf4j-nop 1.7.5 конфигурации.
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-nop</artifactId>
<version>1.7.5</version>
<scope>compile</scope>
</dependency>
и последнее, но не менее важное: журналы сохраняются и печатаются, несмотря на ошибка.
способы воспроизведения ошибки
-
скачать Eclipse Juno, Indigo или Kepler 32 или 64 бит (все установки будут причина та же ошибка).
-
установите интеграцию m2e-Maven для Eclipse
- Юнона -http://download.eclipse.org/releases/juno
- Кеплер - http://download.eclipse.org/releases/kepler
- Индиго -http://download.eclipse.org/technology/m2e/releases/ (в настоящее время недоступно)
или
-
обновите версию m2e до 1.1.0.20120530-0009 или 1.2.0.20120903-1050 или 1.3.0.20130129-0926, или 1.4.0.20130601-0317)
-
Выберите File - >New->Other->Maven Project->Нажмите Next - >Select
maven-archetype-quickstart из каталога - > Finishили
выберите File - >New - >Other - >Maven Project - > нажмите Next - > выберите Create a simple project (пропустить выбор архетипа)-> Complete Artifact info - > Finish
-
- щелкните правой кнопкой мыши на проект - > работает как - >чистая установка (или любая другая цель, упомянутая выше)
первая строка на консоли будет
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.
П. С. существующие проекты будут производить одну и ту же ошибку после обновления М2Э версия для 1.1.0.20120530-0009,1.2.0.20120903-1050,1.3.0.20130129-0926, 1.4.0.20130601-0317
обновления
EDIT
сайт поддержки m2e:
-
вышеуказанный вопрос был размещен как ошибка на сайте поддержки m2e, и ответ от Игоря Федоренко был таков
нет никаких немедленных планов подавить это сообщение.
для просмотра вышеуказанной ошибки пожалуйста, обратитесь к официальный сайт поддержки m2e
EDIT 2
- вышеуказанная индикация ошибки присутствует и m2e версия 1.2.0.20120903-1050
редактировать 3
- вышеуказанная индикация ошибки присутствует и m2e версия 1.3.0.20130129-0926
EDIT 4
- вышеуказанная индикация ошибки присутствует и m2e версия 1.4.0.20130601-0317
редактировать 5
***Reported FIXED***
- вышеуказанная ошибка сообщается как исправлена для m2e версия 1.5.0/Луна М3(Цель Вехой). Версия еще не доступна для скачивания.
- Луна М3 и запланировано на ноябрь. 15-й.
- последние сборки dev доступны здесь
- более подробную информацию о вехах m2e вы можете найти в m2e главный репозиторий.
9 ответов:
Я также могу подтвердить эту ошибку.
решение: использовать внешний maven внутри m2eclipse, вместо него встроен maven.
это делается в три шага:
1 установить maven на локальном компьютере (тест-машина была Ubuntu 10.10)
mvn -- version
Apache Maven 2.2.1 (rdebian-4) Java версия: 1.6.0_20 Java home: /usr/lib/jvm/java-6-openjdk / JRE локаль по умолчанию: de_DE, платформа кодировка: UTF-8 название ОС: "linux" версия: "2.6.35-32-generic" arch: семейство" amd64": "unix"
2 Запустите maven внешне ссылка Как запустить maven из консоли
> cd path-to-pom.xml > mvn test
[INFO] Scanning for projects... [INFO] ------------------------------------------------------------------------ [INFO] Building Simple [INFO] task-segment: [test] [INFO] ------------------------------------------------------------------------ [...] [INFO] Surefire report directory: [...]/workspace/Simple/target/surefire-reports ------------------------------------------------------- T E S T S ------------------------------------------------------- Running net.tverrbjelke.experiment.MainAppTest Hello World Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.042 sec Results : Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESSFUL [INFO] ------------------------------------------------------------------------ [...]
3 внутри m2eclipse: переключатель от встроенный maven к местному maven
- узнайте, где находится локальный Maven home installation dir (
mvn --version
, или google для вашегоMAVEN_HOME
для меня это помогло мне что это/usr/share/maven2
)- в меню eclipse - > окно - > настройки - >Maven - > установка - > введите эту строку. Затем вы должны были переключиться на новый внешний maven.
- затем запустите свой проект, например, как "тест maven".
сообщение об ошибке должно исчезнуть.
существует документация на сайте SLf4J, чтобы решить эту проблему. Я последовал этому и добавил slf4j-simple-1.6.1.jar к моему применению вместе с slf4j-api-1.6.1.банки, который у меня уже был.Это решило мою проблему
Если вы используете Gradle добавить это:
dependencies { ... compile "org.slf4j:slf4j-simple:1.7.9" ... }
была аналогичная ошибка с тем же результатом с Gradle и смог решить ее следующим образом:
//compile 'org.slf4j:slf4j-api:1.7.1' compile group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.1' compile group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.1' compile group: 'org.apache.logging.log4j', name: 'log4j-slf4j-impl', version: '2.1'
Out-commented строка-это та, которая вызвала вывод ошибки. Я считаю, что вы можете передать это Maven.
вы не указали версию в своем файле зависимостей maven, возможно, поэтому он не выбирает последнюю jar
а также вам нужна еще одна deppendency сslf4j-log4j12
идентификатор артефакта.
включите это в свой файл pom<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.5.6</version> </dependency>
Дайте мне знать, если ошибка все еще не решен
Я также рекомендую вам увидеть этой ссылке
вставьте этот код в pom.XML-файл. Это работает на меня.
<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>1.6.1</version> <scope>test</scope> </dependency>
был над просмотром вопроса, обнаружив его. Поверьте, это будет хорошим чтением для других, которые приходят сюда с той же проблемой:
У меня была аналогичная проблема для моего приложения Spring Boot - Gradle, работающего на Eclipse Luna. Я мог бы решить это вручную, добавив запись в моем проекте .путь к классу
<classpathentry sourcepath="C:/Users/<username>/.gradle/caches/modules-2/files-2.1/org.slf4j/slf4j-simple/1.7.7/3150039466ad03e6ef1c7ec1c2cbb0d96710cf64/slf4j-simple-1.7.7-sources.jar" kind="lib" path="C:/Users/<username>/.gradle/caches/modules-2/files-2.1/org.slf4j/slf4j-simple/1.7.7/8095d0b9f7e0a9cd79a663c740e0f8fb31d0e2c8/slf4j-simple-1.7.7.jar"/>
идея состоит в том, чтобы следовать этой решение. Но как реализовать зависит от случая к случаю. Один из способов фиксации является тот, который я использовал выше.
надеюсь, что это помогает.
Это не сообщение об ошибке, а предупреждение. Это очень четко объясняется на их веб-сайте как:
Это предупреждение, т. е. не ошибка, сообщение сообщается, когда поставщики SLF4J не могут быть найдены на пути к классу. Размещение одного (и только одного) из slf4j-nop.jar slf4j-простой.jar, slf4j-log4j12.jar, slf4j-jdk14.jar или logback-классика.jar на пути к классу должен решить эту проблему. Обратите внимание, что эти поставщики должны быть нацелены на slf4j-api 1.8 или более поздней версии.
при отсутствии a поставщик, SLF4J будет по умолчанию для поставщика регистратора no-operation (NOP).