最近在学习使用maven的时候,在pom.xml文件中导入了slf4j的引用,当时的pom.xml文件内容是如下:
<project> <dependencies> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>1.6.1</version> <scope>test</scope> </dependency> </dependencies> </project>
当时测试的类:src/main/java/cn/jamkong/Demo.java代码如下
public class Demo{ private static final transient Logger log = LoggerFactory.getLogger(Demo.class); public static void main(String[] args) { log.info("Hello World"); System.exit(0); } }
----在程序运行后发生了错误----如下:
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.
————————————
错误的原因是:
pom.xml中的<scope>test</scope>这段代码搞的鬼。。。因为我的Demo类当时是写在src/main/java/目录下的。 - - !
自己马虎的事~~在这里记下。。
附录:
在POM 4中,<dependency>中还引入了<scope>,它主要管理依赖的部署。目前<scope>可以使用5个值:
* compile,缺省值,适用于所有阶段,会随着项目一起发布。
* provided,类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。
* runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段。
* test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。
* system,类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
原文:http://www.cnblogs.com/JamKong/p/4841591.html