我使用Sonarcloud和gradle插件。我能够使用gradle运行Sonarqube分析,并将结果推到Sonarcloud,但出于某种原因,声纳插件并没有将jacoco代码覆盖报告推给sonar云。
我看到在指定文件夹中生成的代码覆盖率报告,但是sonarqube插件拒绝推到声纳云。
这是我的build.gradle中的声纳
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"
}
}如果我丢失了任何属性或者需要任何进一步的配置,请告诉我。
发布于 2019-10-05 18:31:22
要调试这种情况,最好包括您执行的确切的./gradlew sonarqube ...命令,以及在使用--info标志时的输出。
现在,我可以说,您不必显式地指定jacoco报告路径,sonarqube插件应该能够找到它。确保激活了jacoco插件,例如,使用如下一行:
apply plugin: 'jacoco'据我所知,没有必要指定以下属性,插件会自动检测它们:
属性"sonar.java.source“、"1.8”属性"sonar.java.binaries“、"build/libs/xyz-0.0.1-SNAPSHOT.jar”属性"sonar.java.coveragePlugin“、"jacoco”属性"sonar.tests“、"src/test”属性"sonar.java.test.binaries“、"build/classes/java/test”
最后,正如文档所解释的,配置sonar.login的最佳位置不是在build.gradle中,而是在gradle.properties文件中,如systemProp.sonar.login=<token>。
https://stackoverflow.com/questions/58002461
复制相似问题