Jacoco报告没有被推向SonarCloud

时间:2019-09-19 01:14:28

标签: gradle sonarqube jacoco sonarcloud

我正在将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"

        }
}

让我知道我是否缺少任何属性或需要任何进一步的配置。

1 个答案:

答案 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>