如何为 JaCoCo/SonarQube 配置 sonar.coverage.jacoco.xmlReportPaths?
How to configure sonar.coverage.jacoco.xmlReportPaths for JaCoCo/SonarQube?
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 通过以下方式注入(否则你会遇到 "localhost:9000" 错误):
SonarQube 分析通过 Jenkins 和 JaCoCo plugin v.3.0.4 触发,作业配置如下:
我读到 report.xml
被 xmlReportPaths
捡到。我怎样才能生成它?
相关
您的构建似乎是基于 Gradle。在 gradle build
中使用 jacoco 和 sonarqube 插件会更容易
plugins {
id "jacoco"
id "org.sonarqube" version "2.8"
}
您不需要 sonar-project.properties
,分析是从您的构建中配置的。您可以在 sonarqube 配置中自定义默认值
// in build.gradle
sonarqube {
properties {
property "sonar.exclusions", "**/*Generated.java"
}
}
要启用覆盖,您需要配置 gradle 以生成 XML 报告
jacocoTestReport {
reports {
xml.enabled true
}
}
然后 运行 和 gradle build jacocoTestReport sonarqube
。可以找到更多详细信息here and in SonarScanner for Gradle doc
我们可以通过将 xml.enabled
值指定为 true
并在报告部分提供 [=16=] 来生成 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")
}
}
SonarQube 属性也可以通过 build.gradle
文件进行配置。由于 sonar.jacoco.reportPath
和 sonar.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测试报告文件
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 通过以下方式注入(否则你会遇到 "localhost:9000" 错误):
SonarQube 分析通过 Jenkins 和 JaCoCo plugin v.3.0.4 触发,作业配置如下:
我读到 report.xml
被 xmlReportPaths
捡到。我怎样才能生成它?
相关
您的构建似乎是基于 Gradle。在 gradle build
中使用 jacoco 和 sonarqube 插件会更容易plugins {
id "jacoco"
id "org.sonarqube" version "2.8"
}
您不需要 sonar-project.properties
,分析是从您的构建中配置的。您可以在 sonarqube 配置中自定义默认值
// in build.gradle
sonarqube {
properties {
property "sonar.exclusions", "**/*Generated.java"
}
}
要启用覆盖,您需要配置 gradle 以生成 XML 报告
jacocoTestReport {
reports {
xml.enabled true
}
}
然后 运行 和 gradle build jacocoTestReport sonarqube
。可以找到更多详细信息here and in SonarScanner for Gradle doc
我们可以通过将 xml.enabled
值指定为 true
并在报告部分提供 [=16=] 来生成 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")
}
}
SonarQube 属性也可以通过 build.gradle
文件进行配置。由于 sonar.jacoco.reportPath
和 sonar.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测试报告文件