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”错误):
SonarQube 分析是通过 Jenkins 和 JaCoCo plugin 触发的。 v.3.0.4 具有以下作业配置:
我读到了
report.xml
被 xmlReportPaths
接收.我怎样才能生成它?有关的
最佳答案
我们可以通过指定 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.reportPath
和 sonar.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/