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

标签 jenkins sonarqube jacoco

SonarQube 7.7 针对 Java 项目分析显示以下警告:

Property 'sonar.jacoco.reportPath' is deprecated (JaCoCo binary format). 'sonar.coverage.jacoco.xmlReportPaths' should be used instead (JaCoCo XML format).



基于 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 通过以下方式注入(inject)(否则最终会出现“localhost:9000”错误):

Prepare SonarQube Scanner environment

SonarQube 分析是通过 Jenkins 和 JaCoCo plugin 触发的。 v.3.0.4 具有以下作业配置:

JaCoCo configuration

我读到了 report.xmlxmlReportPaths 接收.我怎样才能生成它?

有关的
  • https://github.com/jacoco/jacoco/issues/919
  • https://github.com/jacoco/jacoco/commit/6babdb5233217b0812a85f6b1673aabe7f0fd47e
  • 最佳答案

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

    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")
            }
        }
    
    
    SonarQube 属性也可以通过 build.gradle 进行配置。文件。如sonar.jacoco.reportPathsonar.jacoco.reportPaths是 Sonar 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命令,jacoco 测试报告文件如${project.buildDir}/reports/jacoco.xml${project.buildDir}/jacoco/test.exec将为 SonarQube 生成。

    关于jenkins - 如何为 JaCoCo/SonarQube 配置 sonar.coverage.jacoco.xmlReportPaths?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58839685/

    相关文章:

    batch-file - 通过 windows 命令行更新 CCRC View 并将其集成到 Jenkins 中

    sonarqube - Sonarqube 尚未开始

    用于获取关键安全漏洞的 SonarQube API

    android - Kotlin JaCoCo,无覆盖 -> IllegalClassFormatException ...请提供原始的非仪器类

    java - 如何在不使用 PowerMock 中的 PrepareFor 注释的情况下模拟私有(private)方法?

    docker - 类型 "bind": bind mount source path does not exist:/home/jenkins/. docker (Istio) 的挂载配置无效

    windows - 设置 Jenkins 时权限被拒绝(公钥)

    java - Jenkins 将参数传递给 testNG Java

    android - Gradle 与 SonarQube 的依赖关系

    java - 如何从 Gradle 中的 jacoco 插件中排除生成的 sourceSet