如何为JaCoCo / SonarQube配置sonar.coverage.jacoco.xmlReportPaths?

Sonarqube 7.7显示以下Java项目分析警告:

  

不推荐使用属性“ sonar.jacoco.reportPath”(JaCoCo二进制格式)。应该使用“ sonar.coverage.jacoco.xmlReportPaths”(JaCoCo XML格式)。

基于Gradle的项目通过sonar-project.properties进行如下配置:

sonar.projectKey=MyExampleLib
sonar.projectName=MyExample library
sonar.sources=src/main/java
sonar.jacoco.reportPath=build/jacoco/test.exec
sonar.junit.reportsPath=build/test-results/test
sonar.java.test.binaries=build/classes/test
sonar.java.binaries=build/classes/java/main
sonar.binaries=build/classes
sonar.projectVersion=$libVersion

通过以下方式注入Sonarqube服务器URL(否则,您将收到“ localhost:9000”错误):

如何为JaCoCo / SonarQube配置sonar.coverage.jacoco.xmlReportPaths?

通过Jenkins和JaCoCo plugin v.3.0.4使用以下Job配置触发Sonarqube分析:

如何为JaCoCo / SonarQube配置sonar.coverage.jacoco.xmlReportPaths?

我读到report.xml拾取了xmlReportPaths。如何生成它?

相关

woshijxsd0001 回答:如何为JaCoCo / SonarQube配置sonar.coverage.jacoco.xmlReportPaths?

我们可以通过将xml.enabled的值指定为true并在报告部分提供destination path来生成XML格式的Jacoco报告。

plugins {
      id "org.sonarqube" version "2.8"
}
    jacocoTestReport {
        group = "Reporting"
        reports {
            xml.enabled true
            csv.enabled false
            //to create coverage report in html
            html.destination file("${buildDir}/reports/coverage")
            //for XML
            xml.destination file("${buildDir}/reports/jacoco.xml")
        }
    }

也可以通过build.gradle文件配置SonarQube属性。由于sonar.jacoco.reportPathsonar.jacoco.reportPaths是声纳版本7.7中已弃用的属性,应将其替换为sonar.coverage.jacoco.xmlReportPaths

  • 通过build.gradle
  • 配置Sonarqube属性
sonarqube {
    properties {
        property 'sonar.projectName','MyExample Library'
        property 'sonar.projectKey','MyExampleLib'
        property 'sonar.core.codeCoveragePlugin','jacoco'
        property 'sonar.coverage.jacoco.xmlReportPaths','${project.buildDir}/reports/jacoco.xml'
    }
}

  • 如果您希望通过sonar-project.properties进行此操作,则将下面提到的不推荐使用的属性更新为建议的属性。
sonar.jacoco.reportPath=build/reports/jacoco.xml

最后,通过执行gradle jacocoTestReport sonarqube命令,将为SonarQube生成诸如${project.buildDir}/reports/jacoco.xml${project.buildDir}/jacoco/test.exec之类的jacoco测试报告文件。

,

似乎您的构建基于Gradle。在gradle构建中使用jacoco和sonarqube插件会更容易

plugins {
    id "jacoco"
    id "org.sonarqube" version "2.8"
}

您不需要sonar-project.properties,分析是从您的构建中配置的。您可以在声纳配置中自定义默认值

// in build.gradle
sonarqube {
    properties {
        property "sonar.exclusions","**/*Generated.java"
    }
}

要启用覆盖,您需要配置gradle以生成XML报告

jacocoTestReport {
    reports {
        xml.enabled true
    }
}

然后使用gradle build jacocoTestReport sonarqube运行。可以在hereSonarScanner for Gradle doc

中找到更多详细信息
本文链接:https://www.f2er.com/3109102.html

大家都在问