sonar.jacoco.reportpath中的多个路径

时间:2018-04-04 11:47:07

标签: jenkins sonarqube jacoco jacoco-maven-plugin

我有一个配置了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。我们如何在这里配置多个路径?

1 个答案:

答案 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
  }
}