1

我正在使用带有 gradle 插件的 Sonarcloud 。我能够使用 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"

        }
}

如果我缺少任何属性或需要任何进一步的配置,请告诉我。

4

1 回答 1

1

要调试这样的情况,最好包含./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"

最后,正如文档所解释的配置的最佳位置sonar.login不是在.build.gradlegradle.propertiessystemProp.sonar.login=<token>

于 2019-10-05T18:31:22.053 回答