Gradle项目接入JaCoCo只需启用插件并配置报告任务,无需额外引入JAR;基础配置包括应用插件、指定版本、开启HTML报告、绑定check任务;Spring Boot项目需强制扫描测试类,多模块项目可在父工程统一配置。

Gradle 项目中接入 JaCoCo 做单元测试覆盖率统计,不需要额外引入依赖 JAR,只需启用插件并配置报告生成任务。整个过程轻量、标准,且对 Spring Boot 项目也兼容。
基础配置(单模块项目)
在项目根目录的 build.gradle 文件中添加以下内容:
- 应用 JaCoCo 插件:
plugins { id 'jacoco' } - 指定 JaCoCo 版本(推荐 0.8.10+,兼容 Java 17+ 和 Spring Boot 3.x):
jacoco { toolVersion = '0.8.10' } - 启用测试覆盖率收集(关键):在
android {}块中(仅 Android 项目)设testCoverageEnabled = true;普通 Java/Java Web 项目则无需此步,JaCoCo 默认监听test任务
生成 HTML 报告(最常用)
默认 jacocoTestReport 任务只生成 XML,需显式开启 HTML 输出:
- 添加报告配置块:
tasks.jacocoTestReport { reports { html.enabled = true xml.enabled = false csv.enabled = false } } - 让构建流程自动触发报告生成:
check.dependsOn jacocoTestReport
执行 ./gradlew clean test jacocoTestReport 后,报告路径为:build/reports/jacoco/test/html/index.html
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
立即学习“Java免费学习笔记(深入)”;
Spring Boot 项目特别注意
Spring Boot 的 test 任务默认跳过部分类扫描,可能导致覆盖率偏低或为空。需补充配置:
- 强制扫描测试类:
tasks.withType(Test) { scanForTestClasses = false; include '**/*Test.class' } - 如使用
@SpringBootTest集成测试,建议搭配testImplementation 'org.springframework.boot:spring-boot-starter-test',JaCoCo 可正常插桩
多模块项目统一覆盖
父工程中声明插件和通用配置,子模块继承即可:
- 父
build.gradle中添加插件与jacoco块(同上) - 各子模块无需重复配置,但需确保其
test任务正常执行 - 聚合报告需额外用
JacocoReport类型任务合并各模块executionData,非必需场景可暂不处理

















