我有一个配置了Jacoco和Sonar(版本6.0)的maven Jenkins工作(Jenkins版本2.105)。该项目创建了多个jacoco.exec,我需要在sonar.jacoco.reportpath下放置相同的路径。如果我只添加一个exec,代码覆盖率会出现在声纳中。虽然添加其他值是逗号分隔值,但代码覆盖率未显示在Sonar中。
由于SonarQube的版本在6.2之前,我知道我们需要使用sonar.jacoco.reportPath属性而不是sonar.jacoco.reportPaths。我们如何在这里配置多个路径?
答案 0 :(得分:0)
您需要将JaCoCo .exec文件合并为一个二进制文件。
要实现此目的,请使用JaCoCo的merge mojo。
Cristian(来自cristian.io)对于如何实现此here具有很好的演练。以下是该博文中代码的略微修改版本。
def allTestCoverageFile = "$buildDir/jacoco/allTestCoverage.exec"
task jacocoMergeTest(type: JacocoMerge) {
destinationFile = file(allTestCoverageFile)
executionData = project.fileTree(dir: '.', include:'**/build/jacoco/test.exec')
}
sonarqube {
properties {
property "sonar.projectKey", "your.org:YourProject"
property "sonar.projectName", "YourProject"
property "sonar.jacoco.reportPath", allTestCoverageFile
}
}