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

如何让jacoco-report-aggregation生成含当前模块的Gradle覆盖率报告

多模块Gradle项目JaCoCo聚合覆盖率报告缺失当前模块数据的问题

我的项目按功能分为以下模块:

- rain
  - rain-common
  - rain-service
  - rain-application

rain-application依赖rain-common和rain-service,是Spring Boot项目,使用bootJar打包成Fat Jar。我按照Gradle官方教程《Aggregating code coverage with JaCoCo》配置了jacoco-report-aggregation插件,但生成的报告仅展示rain-common和rain-service的覆盖率,未包含rain-application自身的覆盖率。

rain-application的build.gradle配置如下:

apply plugin: 'groovy'
apply plugin: 'jacoco-report-aggregation'

dependencies {
    implementation project(':rain-service')
    implementation project(':rain-common')
    testImplementation 'org.spockframework:spock-spring:2.4-M1-groovy-4.0'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
testCodeCoverageReport{
    reports {
        xml.enabled false
        html.enabled true
    }
}
check.dependsOn testCodeCoverageReport
test {
    ignoreFailures = true
    finalizedBy testCodeCoverageReport // report is always generated after tests run
    useJUnitPlatform()
    testLogging {
        events "passed", "skipped", "failed"
    }
}

若单独使用jacoco插件,仅能展示rain-application自身的覆盖率。我需要jacoco-report-aggregation生成的聚合报告同时包含rain-application的覆盖率数据——所有测试代码都在rain-application中,因依赖Servlet上下文,无法拆分到各个模块单独运行。

此外,针对这类打包成Fat Jar的多模块Gradle项目,如何配置才能获取全局覆盖率报告?有没有相关的最佳实践可以推荐?

内容的提问来源于stack exchange,提问作者Wei

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 17:20:07