pom文件添加新依赖后,junit启动失败,比较坑爹的是错误堆栈没有任何信息
这是由于使用了SpringJUnit4ClassRunner,在执行获得logger时,陷入死循环
日志采用了log4j-over-slf4j实现,在Logger和其父类Category之间循环调用,造成堆栈异常
死循环,挂了
解决办法是排除模块中的日志实现模块
<dependency> <groupId>com.tyyd</groupId> <artifactId>acws.core</artifactId> <version>1.3.8</version> <exclusions> <exclusion> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> </exclusion> <!-- 将新依赖的日志依赖排除 --> <exclusion> <groupId>org.slf4j</groupId> <artifactId>log4j-over-slf4j</artifactId> </exclusion> </exclusions> </dependency>
重新打包部署,一切恢复正常!
clean install -DskipTests -Pdev
在没用错误堆栈信息的时候,定位错误非常麻烦,可以使用其父类BlockJUnit4ClassRunner,获得错误堆栈,加快错误定位