You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SpringBoot+Gradle+Bitbucket Pipelines配置SonarCloud覆盖率始终为0%

解决SonarCloud显示0%代码覆盖率的配置遗漏项

核心问题

你仅添加了SonarQube插件,但未配置测试覆盖率报告生成工具——SonarCloud本身不生成覆盖率数据,必须依赖Jacoco这类工具生成报告后,再将数据提交给Sonar进行解析展示。

具体修复步骤

1. 在build.gradle中补充Jacoco插件及关联配置

plugins {
    id 'org.springframework.boot' version '你的SpringBoot版本'
    id 'io.spring.dependency-management' version '对应版本'
    id 'java'
    id "org.sonarqube" version "3.4.0.2513"
    id 'jacoco' // 引入Jacoco覆盖率插件
}

// 配置Jacoco版本
jacoco {
    toolVersion = "0.8.8" // 使用稳定兼容版本
}

// 测试任务完成后自动生成覆盖率报告
test {
    finalizedBy jacocoTestReport
}

// 配置Jacoco生成Sonar可读的XML格式报告
jacocoTestReport {
    reports {
        xml.required = true // 必须开启XML报告,SonarCloud依赖此文件
        html.required = true // 可选,生成HTML报告方便本地查看覆盖率详情
    }
}

// 让SonarQube读取Jacoco生成的报告
sonarqube {
    properties {
        property 'sonar.java.coveragePlugin', 'jacoco'
        property 'sonar.jacoco.reportPaths', "${project.buildDir}/reports/jacoco/test/jacocoTestReport.xml"
        // 补充SonarCloud必填配置(从SonarCloud后台获取)
        property 'sonar.projectKey', '你的项目Key'
        property 'sonar.organization', '你的组织Key'
        property 'sonar.host.url', 'https://sonarcloud.io'
    }
}

2. 调整Bitbucket Pipelines脚本

确保流水线先完成测试并生成覆盖率报告,再执行Sonar分析(显式指定任务更稳妥):

script:
  - ./gradlew clean build jacocoTestReport sonarqube

3. 验证关键细节

  • 测试类需遵循Gradle默认命名规则(如*Test.java),确保Gradle能识别并执行测试
  • Bitbucket Pipelines需配置环境变量SONAR_TOKEN(从SonarCloud后台生成),Sonar插件会自动读取该变量完成认证
  • 确认Jacoco报告路径与Sonar配置中的路径完全一致,避免路径错误导致Sonar无法读取报告

多模块项目额外提示

若为多模块SpringBoot项目,需在根build.gradle中配置Jacoco全局规则,并确保每个子模块都应用Jacoco插件;Sonar配置中需添加所有子模块的Jacoco报告路径,格式示例:

property 'sonar.jacoco.reportPaths', "${project.rootDir}/module1/build/reports/jacoco/test/jacocoTestReport.xml,${project.rootDir}/module2/build/reports/jacoco/test/jacocoTestReport.xml"

内容的提问来源于stack exchange,提问作者Guilherme Feulo do Espirito Sa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 12:10:25