声纳Xerces冲突Findbugs和常春藤:报告

pvg*_*ijn 8 findbugs xerces ivy sonarqube

我正在努力让声纳为一个包含Findbugs规则的质量档案的项目工作.

然而,在分析项目时,声纳反任务会因以下错误而崩溃:

Caused by: java.io.IOException: SAX2 driver class org.apache.xerces.parsers.SAXParser not found
    at edu.umd.cs.findbugs.filter.Filter.<init>(Filter.java:134)
    at edu.umd.cs.findbugs.FindBugs.configureFilter(FindBugs.java:516)
    at edu.umd.cs.findbugs.FindBugs2.addFilter(FindBugs2.java:374)
    at org.sonar.plugins.findbugs.FindbugsExecutor.execute(FindbugsExecutor.java:136)
    ... 50 more
Run Code Online (Sandbox Code Playgroud)

在这个项目中,依赖关系是用ivy解决的,并且不依赖于像xerces和xalan这样的库.另外我明白xerces包含在JVM中并且总是很乐意处理......

我试图添加各种依赖项用于sonar.libraries属性,但没有效果添加本地JRE库也似乎没有太大的影响.

如何运行这个findbugs分析(以独立于机器的方式)?

(声纳版本:4.4,findbugs3插件)

更新:我刚刚发现冲突的来源是在构建中早期有一个目标,删除它修复它.当然我非常想保留我的常春藤报告,所以问题仍然是我如何让这个工作......?

Dad*_*Moe 12

在将我们的声纳升级到v4.4并将Sonar的质量配置文件从'Sonar way'(Java)更改为'使用Findbugs的Sonar方式'之后,我遇到了同样的例外抱怨SAX2驾驶:

Can not execute SonarQube analysis: Can not execute Find bugs: SAX2 driver class org.apache.xerces.parsers.SAXParser not found
Run Code Online (Sandbox Code Playgroud)

我通过将驱动程序添加到我的maven命令来解决它:

Dorg.xml.sax.driver = com.sun.org.apache.xerces.internal.parsers.SAXParser

Bellow是我真正的maven命令,用于清理,编译,运行测试,分析代码并将统计数据上传到声纳(在命令行中修复也符合非机器特定的首选项修复,并且不需要更改源代码)

$ mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent install -Dmaven.test.fai
lure.ignore=true -Dorg.xml.sax.driver=com.sun.org.apache.xerces.internal.parsers.
SAXParser sonar:sonar
Run Code Online (Sandbox Code Playgroud)