首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为JaCoCo/SonarQube配置sonar.coverage.jacoco.xmlReportPaths?

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

Stack Overflow用户
提问于 2019-11-13 14:49:43
回答 3查看 63.5K关注 0票数 19

Java7.7显示了用于SonarQube项目分析的以下警告:

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

基于分级的项目通过sonar-project.properties配置如下:

代码语言:javascript
复制
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“错误):

SonarQube分析是通过Jenkins和JaCoCo插件 v.3.0.4通过以下作业配置触发的:

我读到report.xml是由xmlReportPaths捡起来的。我怎样才能产生它?

相关

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-11-14 13:41:32

看起来您的构建是基于Gradle的。在gradle构建中使用jacoco和声纳插件会更容易

代码语言:javascript
复制
plugins {
    id "jacoco"
    id "org.sonarqube" version "2.8"
}

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

代码语言:javascript
复制
// in build.gradle
sonarqube {
    properties {
        property "sonar.exclusions", "**/*Generated.java"
    }
}

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

代码语言:javascript
复制
jacocoTestReport {
    reports {
        xml.enabled true
    }
}

然后使用gradle build jacocoTestReport sonarqube运行。更多详细信息可以在这里Gradle医生的SonarScanner中找到。

票数 9
EN

Stack Overflow用户

发布于 2020-02-25 17:55:25

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

代码语言:javascript
复制
plugins {
      id "org.sonarqube" version "2.8"
}
代码语言:javascript
复制
    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")
        }
    }

SonarQube属性也可以通过build.gradle文件进行配置。因为sonar.jacoco.reportPathsonar.jacoco.reportPaths是声纳7.7版本中不推荐的属性,应该用sonar.coverage.jacoco.xmlReportPaths代替。

  • 通过build.gradle配置Sonarqube属性
代码语言:javascript
复制
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实现这一点,那么将下面提到的不推荐属性更新为建议的属性。
代码语言:javascript
复制
sonar.jacoco.reportPath=build/reports/jacoco.xml

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

票数 15
EN

Stack Overflow用户

发布于 2022-08-18 19:44:41

在Maven (pom.xml)中,简单添加(在属性下):

代码语言:javascript
复制
<properties>
    <sonar.coverage.jacoco.xmlReportPaths>
        ../app-project-name/target/jacoco-report/jacoco.xml
    </sonar.coverage.jacoco.xmlReportPaths>
</properties>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58839685

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档