我在构建文件中配置了 Sonar ,但我似乎无法解决此日志记录错误:
[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',
我想尝试一下 Sonar ,但我找不到任何方法来解决这个问题。其他线程上也有类似的位,但它们似乎只想要 api 或 logback。我们主要通过 log4j 进行日志记录,并具有公共(public)绑定(bind)。有什么方法至少可以弄清楚我做错了什么吗?我没有遇到任何与多个绑定(bind)有关的其他问题,并且这也没有给我任何其他的东西可以继续。
最佳答案
可能 SONAR-3979 ,虽然这似乎是 Maven 集成问题...
您确定 logback jar 不在类路径上吗?您可以尝试忽略 slf4j-simple 日志实现 jar 并看看会发生什么。
更新
您的 Sonar ANT 2.1 版本已有两年历史,而您的 Sonar Sonar 版本非常现代。 你尝试过升级jar吗?可以从 Maven Central 检索及其所有依赖项。
我知道问题很可能是客户端类路径问题,但我刚刚注意到您正在使用 Buildr 运行它?是否可以将日志记录 jar 添加到类路径中?这类似于上面的 Maven 问题,其中 Sonar 与构建工具提供的日志记录实现发生冲突。再次尝试删除“slf4j-simple”jar。
关于java - 生成器 : Sonar Logging Exception,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17688263/