- Quanto ao IDE Eclipse ( Indigo , Juno e Kepler (versões de 32 e 64 bits))
- Plataformas : Windows , Ubuntu , Mac
- versão m2e : 1.1.0.20120530-0009 , 1.2.0.20120903-1050 , 1.3.0.20130129-0926 ,
1.4.0.20130601-0317
Informações gerais
O erro acima ocorreu após atualizar o m2e para a versão 1.1. Ao remover m2e 1.1 e voltar para m2e 1.0 tudo funcionou bem. Tentei repetir o problema no Windows e no Ubuntu e ocorreu exatamente o mesmo erro. Inúmeras configurações de slf4j-api e logback foram testadas, mas nenhuma parece funcionar.
O erro aparece em qualquer projeto maven, mesmo sem declarar a dependência slf4j .
Novo projeto Maven -> maven-archetype-quickstart
e
Novo projeto Maven -> Projeto simples sem seleção de arquétipo
resultado para
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
Testando ambientes e configurações
Testado com Eclipse Indigo e Eclipse Juno (32 e 64 bits ambos) no Mac, 32 bits no Ubuntu e 64 e 32 bits no Windows. Testou novas instalações de Juno Classic , Juno Modeling tools , Kepler Standard , Kepler Modeling Tools e produziu o mesmo erro.
O erro aparece com limpar , instalar , testar , implantar , gerar fontes , validar , compilar , empacotar , testar de integração , verificar e combinações da meta limpa com as metas restantes. Ele também aparece com os parâmetros -e e -X . Houve uma tentativa de excluir o repositório m2e e baixá-lo do zero, mas novamente sem sucesso. Devo mencionar que foi testado em 3 máquinas diferentes e caixa virtual em todos os sistemas acima, mas produziu o mesmo erro.
Tentei todas as configurações de logback diferentes (de 1.0.4 a 1.0.13) que resolvem as dependências slf4j-api e logback-core , mas todas produziram o mesmo erro:
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version></version>
</dependency>
Tentei todas as configurações slf4j-simples diferentes (de 1.6.1 a 1.7.5) .
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version></version>
<scope>compile</scope>
</dependency>
Tentei todas as configurações diferentes (de 1.6.1 a 1.7.5) log4j-over-slf4j .
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>log4j-over-slf4j</artifactId>
<version></version>
<scope>compile</scope>
</dependency>
Tentei todas as configurações diferentes (de 1.6.1 a 1.7.5) slf4j-jdk14 .
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-jdk14</artifactId>
<version></version>
<scope>compile</scope>
</dependency>
Tentei todas as configurações diferentes (de 1.6.1 a 1.7.5) slf4j-log4j12 .
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version></version>
<scope>compile</scope>
</dependency>
Tentei configuração slf4j-nop 1.7.5 .
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-nop</artifactId>
<version>1.7.5</version>
<scope>compile</scope>
</dependency>
Por último, mas não menos importante, os logs são salvos e impressos apesar do erro.
Maneiras de reproduzir o erro
Baixe Eclipse Juno, Indigo ou Kepler 32 ou 64 bits (todas as instalações causarão o mesmo erro).
Instale m2e - Integração Maven para Eclipse
- Juno - http://download.eclipse.org/releases/juno
- Kepler - http://download.eclipse.org/releases/kepler
- Indigo - http://download.eclipse.org/technology/m2e/releases/ ( atualmente indisponível )
OU
Atualize sua versão m2e para 1.1.0.20120530-0009 ou 1.2.0.20120903-1050 ou 1.3.0.20130129-0926 ou 1.4.0.20130601-0317 )
Selecione Arquivo-> Novo-> Outro-> Projeto Maven-> Clique em Avançar-> Selecione
maven-archetype-quickstart do catálogo-> ConcluirOU
Selecione Arquivo-> Novo-> Outro-> Projeto Maven-> Clique em Próximo-> Selecione Criar um projeto simples (pular a seleção de arquétipo) -> Informações Completas do Artefato-> Concluir
- Clique com o botão direito no projeto-> Runs As-> clean install (ou qualquer outro objetivo mencionado acima)
A primeira linha do console será
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 Os projetos existentes produzirão o mesmo erro após atualizar a versão m2e para 1.1.0.20120530-0009 , 1.2.0.20120903-1050 , 1.3.0.20130129-0926 , 1.4.0.20130601-0317
Atualizações
EDITAR
site de suporte m2e:
A pergunta acima foi postada como um bug no site de suporte m2e e a resposta de Igor Fedorenko foi que
Não há planos imediatos para suprimir esta mensagem.
Para visualizar o bug acima, consulte o site oficial de suporte m2e
EDITAR 2
- A indicação de erro acima está presente também para m2e versão 1.2.0.20120903-1050
EDITAR 3
- A indicação de erro acima é presente também para M2e versão 1.3.0.20130129-0926
EDITAR 4
- A indicação de erro acima é presente também para M2e versão 1.4.0.20130601-0317
EDITAR 5
***Reported FIXED***
- O erro acima é relatado como corrigido para m2e versão 1.5.0 / Luna M3 ( Target Milestone ). A versão ainda não está disponível para download.
- Luna M3 está agendada para 15 de novembro .
- A última compilação de desenvolvimento está disponível aqui
- Mais informações sobre os marcos m2e você pode encontrar no repositório principal m2e .
slf4j
em ambosslf4j-api-1.7.7
ejcl-over-slf4j-1.7.7
e se tento remover algum deles, recebo uma mensagem de erro dizendo queLogger
falta a classe deles . O que devo fazer?Respostas:
Eu também posso confirmar esse erro.
Solução alternativa: é usar o maven externo dentro de m2eclipse, em vez de seu maven incorporado.
Isso é feito em três etapas:
1 Instale o maven na máquina local (a máquina de teste era Ubuntu 10.10)
2 Executar o maven externamente link como executar o maven do console
3 dentro do m2eclipse: mudar de maven incorporado para maven local
mvn --version
ou Google para o seuMAVEN_HOME
, para mim isso me ajudou a que é/usr/share/maven2
)A mensagem de erro deve ter desaparecido.
fonte
#mvn --version
é conveniente mostrar o MAVEN_HOME.Existe uma documentação no site SLf4J para resolver isso. Segui e adicionei slf4j-simple-1.6.1.jar ao meu aplicativo junto com slf4j-api-1.6.1.jar que eu já tinha. Isso resolveu meu problema
slf4j
fonte
Se você estiver usando o Gradle, adicione:
fonte
Teve um erro semelhante com o mesmo resultado com o Gradle e foi capaz de resolvê-lo da seguinte forma:
A linha comentada é aquela que causou a saída de erro. Eu acredito que você pode transferir isso para Maven.
fonte
Você não especificou a versão em seu arquivo de dependência do maven pode ser por isso que ele não está escolhendo o jar mais recente.
Além disso, você precisa de outra dependência com
slf4j-log4j12
id de artefato.Incluir isso em seu arquivo pom
Deixe-me saber se o erro ainda não foi resolvido
Eu também recomendo que você veja este link
fonte
Cole este código em seu arquivo pom.xml. Funciona para mim.
fonte
Estive examinando o problema depois de o ter levantado. Acredite que esta será uma boa leitura para outras pessoas que vêm aqui com o mesmo problema:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=387064
fonte
Eu tive um problema semelhante para meu aplicativo Spring Boot - Gradle em execução no Eclipse Luna. Eu poderia resolver isso adicionando manualmente uma entrada no .classpath do meu projeto
A ideia é seguir esta solução. Mas como implementar depende de caso para caso. Uma forma de consertar é a que usei acima.
Espero que isto ajude.
fonte
Esta não é uma mensagem de erro, mas sim um aviso. É explicado de forma muito clara em seu site como:
Esta mensagem de aviso, ou seja, não é um erro, é relatada quando nenhum provedor SLF4J pode ser encontrado no caminho da classe. Colocar um (e apenas um) de slf4j-nop.jar slf4j-simple.jar, slf4j-log4j12.jar, slf4j-jdk14.jar ou logback-classic.jar no caminho da classe deve resolver o problema. Observe que esses provedores devem ter como alvo slf4j-api 1.8 ou posterior.
Na ausência de um provedor, SLF4J assumirá como padrão um provedor de logger no-operation (NOP).
https://www.slf4j.org/codes.html#StaticLoggerBinder
fonte
Tive o mesmo problema ao escrever o programa produtor Kafka usando java. Este erro está ocorrendo devido à biblioteca slf4j incorreta. use abaixo a dependência maven simples do slf4j que resolverá seu problema.
fonte