2013-07-16 82 views
1

我有聲納在我的構建文件配置的,但我似乎無法來解決這個日誌錯誤: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進行日誌記錄,並擁有公共綁定。有什麼方法可以至少弄清楚我做錯了什麼?我沒有得到任何其他問題與多個綁定,這不會給我什麼其他繼續。

回答

2

可能SONAR-3979,雖然這似乎是一個Maven的整合問題......

你確定一個罐子的logback不也是在classpath?你可以嘗試並省略slf4j-簡單的日誌實現jar,看看會發生什麼。

更新

你的聲納ANT 2.1版是兩歲,而你聲納聲納版本是非常現代的。 你有沒有嘗試升級罐子?可以從Maven Central及其所有依賴關係中檢索。

我明白這個問題很可能是一個客戶端類路徑問題,但我只是注意到你正在使用Buildr運行這個問題?會不會有一個日誌jar被添加到類路徑?這與上面的Maven問題類似,Sonar與構建工具提供的日誌實施發生衝突。再次嘗試刪除「slf4j-simple」罐子。

+0

我在這裏發佈之前遇到過這個問題。它的類似,但我不認爲有關。 我已經將所有傳遞引用從我的項目依賴關係中提取出來,並且實際上查找了聲納ant插件依賴的插件中的版本,並確保所有內容都使用相同的版本。將它與.sonar/batch /一組庫相比較,並且找不到_anything_衝突。 – liam

+0

@liam回答更新。 –

+0

我已經做到了。我已經刪除了slf4j簡單。我用logback classic試過了。我已經嘗試過匹配庫數字,還有其他一些事情。這是一個buildr的問題,我試圖通過buildr來運行,而不是重新引入ant文件依賴。我只是無法讓主插件按照文檔的方式工作(而他們的cobertura,junit,jdepend等插件則像廣告中那樣工作)。我不能讓這個工作,它不給我很多洞察力,爲什麼它不工作。 無論如何,感謝您的輸入。 – liam