jacoco是一个开源的,目前使用比较普遍的java语言的覆盖率计算工具,它默认生成的是.exec格式的覆盖率报告。sonarqube是做代码静态扫描的平台,它可以将jacoco计算的覆盖率上传到自己的平台上,然后根据指定的规则来做一些分析。sonarqube最新的8.x的版本开始不支持.exec这种格式的报告了(也就是参数sonar.jacoco.reportPaths是不支持的了),jacoco要生成xml格式的报告才能被sonarqube识别(sonar.coverage.jacoco.reportXmlPaths)。
官方文档的说明,https://docs.sonarqube.org/pages/viewpage.action?pageId=1442166 但文档并没有说具体从哪个版本不支持。
一、首先来看如何适应sonarqube的改动
下面来看如何让jacoco生成xml格式的报告,其实很简单,在build.gradle中添加这样一个设置就好了,打开xml格式,关闭csv和html格式。
jacocoTestReport {
reports {
xml.enabled true
csv.enabled false
html.enabled false
}
}
然后在执行的时候把这个task添加到参数里才可以
./graldew jacocoTestReport
如果将报告上传到sonarqube,除了要在gradle脚本里添加jacoco插件还要添加sonarqube的gradle插件,完整的gradle如下(也欢迎到我参与的开源项目中去看全部的代码

JaCoCo的.exec格式报告在SonarQube 8.x版本后不再被支持,转而需要XML格式报告(sonar.coverage.jacoco.reportXmlPaths)。要适应这一变化,可以通过Gradle配置JaCoCo生成XML报告,并使用sonarqube插件上传。在多项目构建中,可以在根项目配置JaCoCoTestReport,通过sonar.coverage.exclusions参数排除不需要计算覆盖率的代码。

1万+

被折叠的 条评论
为什么被折叠?



