现象:运行eclipse maven build,console 有红色日志如下:
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.
即便添加对应的dependency仍然有此日志,有红色日志虽然不影响程序运行但还是感觉不舒服,随一探究竟。
原因探究过程如下: 首先在Goals运行目标后添加 -X如下图:
再次运行 maven build,console 有日志如下:
Apache Maven 3.0.4 (r1232337; 2012-01-17 16:44:56+0800)
Maven home: E:\eclipse-jee-indigo-SR2-win32\workspace\cccc\EMBEDDED Java version: 1.7.0_09, vendor: Oracle Corporation Java home: C:\Java\jdk1.7.0_09\jre Default locale: zh_CN, platform encoding: GBK OS name: "windows 7", version: "6.1", arch: "x86", family: "windows"
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.
maven build 命令运行用的是内嵌的maven,版本为3.0.4。
于是添加maven配置为运行外部maven如下图,并更新对应配置文件。
在次运行maven build命令,报错如下图:
期间workspace删除项目重新导入,运行依然有错;删除maven项目下除src其它目录,除pom.xml其它文件,重新导入运行maven build依然有红色日志
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.
后经测试首先在run config窗口删除原来运行配置ccc。
在在项目右键运行RUN AS-->MAVEN BUILD弹出窗口重新配置运行目标为compile -X,点apply,debug。
console没了红色日志输出,输出如下:
Apache Maven 3.0.5 (r01de14724cdef164cd33c7c8c2fe155faf9602da; 2013-02-19 21:51:28+0800) Maven home: D:\apache-maven-3.0.5 Java version: 1.7.0_09, vendor: Oracle Corporation Java home: C:\Java\jdk1.7.0_09\jre Default locale: zh_CN, platform encoding: GBK OS name: "windows 7", version: "6.1", arch: "x86", family: "windows"
总结:出现红色日志输出
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.
在eclipse的几个不同版本eclipse-jee-indigo-SR2-win32,eclipse-jee-kepler-R-win32,eclipse-jee-kepler-SR1-win32,myeclipse blue 2013均出现类似提示,虽增加对应依赖还是有红色日志输出。
经实践当将内嵌maven换为外部版本(我的是apache-maven-3.0.5),新建的工程运行maven目标是不会在出现红色日志输出。旧的工程删掉重新导入还是不可以,在maven运行目标后加参数-X,有上面运行后日志可知运行时用的还是嵌入maven,测试当在一个空的workspace导入旧的没有配置文件工程运行不会出现红色日志。感旧的工程等删除workspace .metadata目录,需重新配置workspace配置麻烦。遂探究背后原因发现eclipse在运行run as后命令后会保存对应配置,即使删除工程,run as config窗口配置依然存在,导致运行run as用旧的配置,正确方法是删除run as config 窗口配置关闭配置窗口,然后运行run as 后面命令弹出的配置窗口重新配置运行命令,apply后,debug或run时才会用新的配置运行工程。