1

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

[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

建造者中止!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 进行日志记录,并具有公共绑定。有没有办法至少弄清楚我做错了什么?我没有遇到多个绑定的任何其他问题,这并没有给我任何其他事情要做。

4

1 回答 1

2

可能是SONAR-3979,虽然这似乎是一个 Maven 集成问题......

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

更新

您的 Sonar ANT 版本 2.1 已有两年历史,而您的 Sonar Sonar 版本非常现代。您是否尝试过升级 jar?可以从Maven Central及其所有依赖项中检索。

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

于 2013-07-17T01:16:07.310 回答