- Относительно Eclipse IDE ( Indigo , Juno и Kepler (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 , Juno Modeling tools , Kepler Standard , Kepler Modeling Tools и выдал ту же ошибку.
Ошибка появляется при очистке , установке , тестировании , развертывании , генерации источников , проверке , компиляции , упаковке , интеграционном тестировании , проверке и комбинациях чистой цели с остальными целями. Он также появляется с параметрами -e и -X . Была попытка удалить репозиторий m2e и загрузить его с нуля, но снова безуспешно. Следует упомянуть, что он был протестирован на трех разных машинах и виртуальном ящике всех вышеперечисленных систем, но вызывал ту же ошибку.
Пробовал все различные конфигурации логбэка (от 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-simple .
<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-> Выберите
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.
PS Существующие проекты будут выдавать ту же ошибку после обновления версии m2e до 1.1.0.20120530-0009 , 1.2.0.20120903-1050 , 1.3.0.20130129-0926 , 1.4.0.20130601-0317
Обновления
РЕДАКТИРОВАТЬ
Сайт поддержки m2e:
Вышеупомянутый вопрос был опубликован как ошибка на сайте поддержки m2e, и Игорь Федоренко ответил, что
В ближайшее время нет планов по подавлению этого сообщения.
Для просмотра вышеуказанной ошибки посетите официальный сайт поддержки m2e.
РЕДАКТИРОВАТЬ 2
- Указанная выше индикация ошибки присутствует также в m2e версии 1.2.0.20120903-1050.
РЕДАКТИРОВАТЬ 3
- Выше индикация ошибки является присутствует также M2e версии 1.3.0.20130129-0926
РЕДАКТИРОВАТЬ 4
- Выше индикация ошибки является присутствует также M2e версии 1.4.0.20130601-0317
РЕДАКТИРОВАТЬ 5
***Reported FIXED***
- Вышеупомянутая ошибка сообщается как исправленная для m2e версии 1.5.0 / Luna M3 ( Target Milestone ). Версия еще не доступна для скачивания.
- Luna M3 будет запланирован на 15 ноября .
- Последняя сборка разработчика доступна здесь
- Более подробную информацию о вехах m2e вы можете найти в основном репозитории m2e .
slf4j
в обоих,slf4j-api-1.7.7
и,jcl-over-slf4j-1.7.7
если я попытаюсь удалить кого-либо из них, я получаю сообщение об ошибке, в котором говорится, что ихLogger
класс отсутствует. Что я должен делать?Ответы:
Я тоже могу подтвердить эту ошибку.
Обходной путь : использовать внешний maven внутри m2eclipse вместо встроенного maven.
Это делается в три этапа:
1 Установите maven на локальный компьютер (тестовая машина была Ubuntu 10.10)
2 Запустите maven внешнюю ссылку, как запустить maven с консоли
3 внутри m2eclipse: переключитесь со встроенного maven на локальный maven
mvn --version
или Google для васMAVEN_HOME
, для меня это помогло мне, что есть/usr/share/maven2
)Сообщение об ошибке должно исчезнуть.
источник
#mvn --version
удобно показать MAVEN_HOME.Для решения этой проблемы на сайте SLf4J есть документация. Я последовал этому и добавил slf4j-simple-1.6.1.jar в свое приложение вместе с slf4j-api-1.6.1.jar, который у меня уже был. Это решило мою проблему.
slf4j
источник
Если вы используете Gradle, добавьте это:
источник
Была аналогичная ошибка с тем же результатом с Gradle, и я смог решить ее, выполнив следующие действия:
Не прокомментированная строка - это та, которая вызвала ошибку. Я считаю, что вы можете передать это Maven.
источник
Вы не указали версию в своем файле зависимостей maven, возможно, поэтому он не
выбирает последнюю банку, а также вам нужна другая зависимость с
slf4j-log4j12
идентификатором артефакта.Включите это в свой файл pom
Сообщите мне, если ошибка все еще не устранена,
я также рекомендую вам просмотреть эту ссылку
источник
Вставьте этот код в свой файл pom.xml. Меня устраивает.
источник
Я долго искал проблему, обнаружив ее. Поверьте, это будет хорошее чтение для тех, кто придет сюда с той же проблемой:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=387064
источник
У меня была аналогичная проблема с моим приложением Spring Boot - Gradle, работающим на Eclipse Luna. Я мог бы решить эту проблему, вручную добавив запись в мой проект .classpath
Идея состоит в том, чтобы следовать этому решению. Но как реализовать, зависит от конкретного случая. Один из способов исправления - тот, который я использовал выше.
Надеюсь это поможет.
источник
Это не сообщение об ошибке, а предупреждение. На их веб-сайте это очень четко объясняется как:
Это предупреждение, т. Е. Не сообщение об ошибке, выдается, когда на пути к классу не может быть найден ни один поставщик SLF4J. Размещение одного (и только одного) из slf4j-nop.jar slf4j-simple.jar, slf4j-log4j12.jar, slf4j-jdk14.jar или logback-classic.jar в пути к классам должно решить проблему. Обратите внимание, что эти поставщики должны нацеливаться на slf4j-api 1.8 или новее.
В отсутствие провайдера SLF4J по умолчанию будет неактивным провайдером логгеров.
https://www.slf4j.org/codes.html#StaticLoggerBinder
источник
У меня была такая же проблема при написании продюсерской программы Kafka с использованием java. Эта ошибка возникает из-за неправильной библиотеки slf4j. используйте приведенную ниже зависимость slf4j-simple maven, которая устранит вашу проблему.
источник