【发布时间】:2012-08-08 15:26:48
【问题描述】:
- 关于 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".
测试环境和配置
在 Mac 上使用 Eclipse Indigo 和 Eclipse Juno(32 位和 64 位)进行测试,在 Ubuntu 上使用 32 位,在 Windows 上使用 64 和 32 位。测试了 Juno Classic、Juno Modeling tools、Kepler Standard、Kepler Modeling Tools 的全新安装并产生了相同的错误.
错误出现在 clean、install、test、deploy、generate-sources、validate、compile、package、integration-test、verify以及干净的目标与其余目标的组合。它也与参数 -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 集成
- 朱诺-http://download.eclipse.org/releases/juno
- 开普勒-http://download.eclipse.org/releases/kepler
- Indigo - 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 )
-
选择文件->新建->其他->Maven项目->点击下一步->选择
maven-archetype-quickstart 从目录->完成或
选择文件->新建->其他->Maven项目->点击下一步->选择创建一个简单项目(跳过原型选择)->完成工件信息->完成
-
- 右键单击项目->运行方式->全新安装(或上述任何其他目标)
控制台的第一行是
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.
附言现有项目将m2e版本更新为1.1.0.20120530-0009、1.2.0.20120903-1050、1.3.0.20130129-0926后会出现同样的错误强>,1.4.0.20130601-0317
更新
编辑
m2e 支持网站:
-
上述问题作为一个错误发布在 m2e 支持网站上,而 Igor Fedorenko 的回答是
没有立即取消此消息的计划。
查看以上bug请参考m2e official support site
编辑 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 报告上述错误已修复(目标里程碑 )。该版本尚未可供下载。
- Luna M3 是 scheduled for Nov. 15th。
- 最新的开发版本可用here
- 有关 m2e 里程碑的更多信息,请访问 m2e main repository。
【问题讨论】:
-
@EliranMalka 它很长,但有原因。试图帮助人们避免问同样的问题,并包括每一个可能看起来必要的细节,以便了解他们是否面临同样的问题并没有让我有太多的选择。 :-)
-
我在尝试将 spring 数据与 neo4j 一起使用时出现此错误,我在
slf4j-api-1.7.7和jcl-over-slf4j-1.7.7中都有slf4j,如果我尝试删除其中任何一个,我会收到一条错误消息他们的Logger课程不见了。我该怎么办? -
@KonstantinosMargaritis 你能告诉我如何用 pom.xml 解决这个问题,我可以让它在本地设置上工作,但在 jenkins 上它总是失败。
-
你当前的设置是什么@vikramvi?
-
@KonstantinosMargaritis 感谢您回复此问题。我意识到maven是Linux上的3.0版本升级到最新版本并再次尝试。这解决了这个问题。但是不得不花一整天的时间来找出可能出了什么问题。无论如何,谢谢。
标签: eclipse maven m2eclipse slf4j logback