构建器:声纳记录异常

时间:2013-07-16 22:48:27

标签: java logging sonarqube slf4j buildr

我在构建文件中配置了声纳,但我似乎无法解决此日志记录错误:

[sonar] Apache Ant(TM) version 1.8.3 compiled on February 26 2012
[sonar] Sonar Ant Task version: 1.3
[sonar] Loaded from: file:/home/liam/.m2/repository/org/codehaus/sonar-plugins/sonar-ant-task/1.3/sonar-ant-task-1.3.jar
[sonar] Sonar work directory: /home/liam/workspace/api-trunk/.sonar
[sonar] Sonar server: http://127.0.0.1:9000
[sonar] Sonar version: 3.6.1
E, [2013-07-16T14:11:27.014000 #4090] ERROR -- : Error instantiating 'sonar' task: java.lang.ClassCastException: org.slf4j.impl.SimpleLoggerFactory cannot be cast to ch.qos.logback.classic.LoggerContext

Buildr中止了! Java :: OrgApacheToolsAnt :: BuildException:java.lang.ClassCastException:org.slf4j.impl.SimpleLoggerFactory无法强制转换为ch.qos.logback.classic.LoggerContext

依赖关系的相关部分:

'org.slf4j:jcl-over-slf4j:jar:1.7.5',
'org.slf4j:log4j-over-slf4j:jar:1.7.5',
'org.slf4j:slf4j-api:jar:1.7.5',
'org.slf4j:slf4j-simple:jar:1.7.5',

我想尝试一下声纳,但我无法找到解决这个问题的方法。其他线程上有类似的位,但它们似乎只是想要api或logback。我们主要通过log4j进行日志记录,并具有公共绑定。有没有办法至少搞清楚我做错了什么?我没有得到多个绑定的任何其他问题,这并没有给我任何其他的继续。

1 个答案:

答案 0 :(得分:2)

可能SONAR-3979,虽然这似乎是Maven整合问题......

你确定一个logback jar也不在classpath上吗?您可以尝试省略slf4j-simple日志实现jar,看看会发生什么。

更新

您的Sonar ANT 2.1版是两年了,而您的Sonar Sonar版本非常现代。 你试过升级jar吗?可以从Maven Central检索其所有依赖项。

我知道问题很可能是客户端类路径问题,但我只是注意到你使用Buildr运行它?是否有一个日志jar被添加到类路径?这与上面的Maven问题类似,其中Sonar与构建工具提供的日志记录实现发生冲突。再次尝试删除“slf4j-simple”jar。