Maven传递依赖引入过旧版本的包
执行程序时报出下面错误:
java.lang.NoSuchFieldError: name
at org.slf4j.impl.Log4jLoggerAdapter.<init>(Log4jLoggerAdapter.java:75)
网上说是因为slf4j版本太旧引起的:
http://bugzilla.slf4j.org/show_bug.cgi?id=137
用m2eclipse的Maven POM Editer查看依赖很方便,选择Dependency Hierarchy,在Filter中输入slf4j:
上图只截取了部分结果。依赖中确实有个项目饮用了过旧版本1.4.3。
在pom.xml中显示声明slf4j,运行成功:
<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.5.8</version> </dependency>