将m2e更新为1.1版后出现上述错误。 通过删除m2e 1.1并回滚到m2e 1.0,一切正常。 我试图在Windows和Ubuntu中重复这个问题,它给了我完全相同的错误。测试了slf4j-api和logback的许多配置,但似乎都没有。
错误出现在任何maven项目中,即使没有声明slf4j依赖。
New Maven Project - > maven-archetype-quickstart
和
New Maven Project - >没有原型选择的简单项目
结果
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
在Mac上测试Eclipse Indigo和Eclipse Juno(32位和64位),在Ubuntu上测试32位,在Windows上测试64位和32位测试。测试了 Juno Classic , Juno建模工具, Kepler标准版, Kepler建模工具的全新安装并产生了相同的错误。
错误显示为清除,安装,测试,部署,生成源< / strong>,验证,编译,包,集成测试,验证目标清理与其余目标的组合。它似乎还带有参数 -e 和 -X 。尝试删除m2e存储库并从头开始下载但是再次没有成功。我应该提到它在3个不同的机器和虚拟盒中测试了所有上述系统,但它产生了相同的错误。
尝试解析 slf4j-api 和 logback-core 依赖关系的所有不同 logback 配置(从1.0.4到1.0.13) ,但都产生相同的错误:
<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 - Eclipse的Maven集成
或
将m2e版本更新为 1.1.0.20120530-0009 ,或 1.2.0.20120903-1050 ,或 1.3.0.20130129-0926 ,或 1.4.0.20130601-0317 )
选择文件 - &gt;新建 - &gt;其他 - &gt; Maven项目 - &gt;点击下一步 - &gt;选择
目录中的maven-archetype-quickstart-&gt;完成
或
选择文件 - &gt;新建 - &gt;其他 - &gt; Maven项目 - &gt;点击下一步 - >选择创建一个简单项目(跳过原型选择) - &gt;完整的工件信息 - &gt;完成
控制台上的第一行是
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.
P.S。将m2e版本更新为1.1.0.20120530-0009 , 1.2.0.20120903-1050 , 1.3.0.20130129-0926 后,现有项目将产生相同的错误strong>, 1.4.0.20130601-0317
<小时/>
修改
m2e支持网站:
以上问题是在m2e支持网站上发布的一个错误,而Igor Fedorenko的回答是
没有立即禁止此消息的计划。
要查看上述错误,请参阅m2e official support site
<小时/> 编辑2
<小时/> 编辑3
<小时/> 编辑4
<小时/> 编辑5
***Reported FIXED***
答案 0 :(得分:73)
我也可以确认这个错误。
解决方法:是在m2eclipse中使用外部maven ,而不是它的嵌入式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,platform 编码:UTF-8操作系统名称:“linux”版本:“2.6.35-32-generic”arch: “amd64”家庭:“unix”
2外部运行maven link how to run maven from console
> 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] ------------------------------------------------------------------------
[...]
在m2eclipse中3:从embedded maven切换到本地maven
mvn --version
,或google为MAVEN_HOME
,this helped me为/usr/share/maven2
} 错误信息应该消失。
答案 1 :(得分:25)
SLf4J网站中有一个文档可以解决此问题。我跟着它,并将slf4j-simple-1.6.1.jar与我已经拥有的slf4j-api-1.6.1.jar一起添加到我的应用程序中。这解决了我的问题
答案 2 :(得分:8)
如果您使用的是Gradle,请添加以下内容:
dependencies {
...
compile "org.slf4j:slf4j-simple:1.7.9"
...
}
答案 3 :(得分:4)
与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-comment线是导致错误输出的线。我相信你可以将它转移到Maven。
答案 4 :(得分:2)
你没有在你的maven依赖文件中指定版本可能就是这就是为什么它没有选择最新的jar你需要另一个对slf4j-log4j12
工件id的依赖。
包括这在你的pom文件中
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.5.6</version>
</dependency>
如果错误仍未解决,请告诉我 我还建议您查看this link
答案 5 :(得分:2)
将此代码粘贴到您的pom.xml文件中。它对我有用。
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.6.1</version>
<scope>test</scope>
</dependency>
答案 6 :(得分:1)
一直在看这个问题已经浮出水面了。相信对于那些带着同样问题来到这里的人来说,这将是一个很好的读物:
答案 7 :(得分:1)
我在Eclipse Luna上运行的Spring Boot - Gradle应用程序遇到了类似的问题。 我可以通过在我的项目的.classpath
中手动添加一个条目来解决它<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"/>
想法是遵循this解决方案。但是如何实施取决于具体情况。一种修复方法是我上面使用的方法。
希望这有帮助。
答案 8 :(得分:0)
这不是错误消息,而是警告。 在他们的网站上非常清楚地解释为:
如果在类路径上找不到SLF4J提供程序,则会报告此警告,即非错误消息。在类路径上放置一个(并且只有一个)slf4j-nop.jar slf4j-simple.jar,slf4j-log4j12.jar,slf4j-jdk14.jar或logback-classic.jar应该可以解决问题。请注意,这些提供程序必须以slf4j-api 1.8或更高版本为目标。
如果没有提供者,SLF4J将默认为无操作(NOP)记录器提供者。
答案 9 :(得分:0)
在使用Java编写Kafka生产程序时,我遇到了同样的问题。由于错误的slf4j库而出现此错误。使用下面的slf4j-简单的maven依赖关系可以解决您的问题。
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.6.1</version>
<scope>test</scope>
</dependency>