我正在将Sonarcloud与gradle插件一起使用。 我能够使用gradle运行Sonarqube分析,并将结果推送到Sonarcloud,但是由于某种原因,声纳插件未将jacoco代码覆盖率报告推送到Sonar cloud。
我看到指定文件夹中生成了代码覆盖率报告,但sonarqube插件拒绝推送到声纳云
这是我build.gradle中的sonarqube属性
sonarqube {
properties {
property "sonar.host.url", "https://sonarcloud.io"
property "sonar.projectKey","xyz"
property "sonar.projectName", "xyz"
property "sonar.java.source", "1.8"
property "sonar.java.binaries", "build/libs/xyz-0.0.1-SNAPSHOT.jar"
property "sonar.organization", "xyz-projects"
property "sonar.java.coveragePlugin", "jacoco"
property "sonar.tests", "src/test"
property "sonar.java.test.binaries", "build/classes/java/test"
property "sonar.coverage.jacoco.xmlReportPaths", "build/reports/jacoco/codeCoverageReport/codeCoverageReport.xml"
property "sonar.login", "xxxxxxyyyyyyyzzzzzzzz"
}
}
让我知道我是否缺少任何属性或需要任何进一步的配置。
答案 0 :(得分:0)
要调试此类情况,最好包含执行的确切./gradlew sonarqube ...
命令以及使用--info
标志时的输出。
现在,我可以说您不必显式指定jacoco报告路径,因此sonarqube gradle插件应该能够找到它。确保jacoco插件已激活,例如,通过这样的一行:
apply plugin: 'jacoco'
据我所知,无需指定以下属性,插件会自动检测到它们:
property "sonar.java.source", "1.8" property "sonar.java.binaries", "build/libs/xyz-0.0.1-SNAPSHOT.jar" property "sonar.java.coveragePlugin", "jacoco" property "sonar.tests", "src/test" property "sonar.java.test.binaries", "build/classes/java/test"
最后,如documentation所述,配置sonar.login
的最佳位置不是在build.gradle
中,而是在gradle.properties
文件中是systemProp.sonar.login=<token>
。