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

Gradle 8.x升级:如何解决JUnitXmlReport.getDestination()报错问题

解决方案

问题根源

你遇到的报错核心原因是Jacoco插件版本(0.8.8)与Gradle 8.x不兼容——旧版Jacoco插件底层会调用Gradle 8.x中已被移除的JUnitXmlReport.getDestination()方法,虽然你的配置里没有直接引用该API,但插件内部依赖了这个已废弃的接口。本地构建正常可能是因为缓存了兼容的依赖,或是CodeBuild环境触发了本地未执行的额外报告逻辑。

修复步骤

1. 升级Jacoco插件版本

将Jacoco的toolVersion替换为与Gradle 8.x完全兼容的版本,推荐使用0.8.12(该版本适配了Gradle 8.x的API变更):

jacoco {
    toolVersion = '0.8.12'
}

jacocoTestReport {
    reports {
        xml.required = true
        html.required = true
    }
}

// 其余test配置保持不变
test {
    useJUnitPlatform() {
        includeEngines 'junit-vintage'
        includeEngines 'spock'
    }
    finalizedBy jacocoTestReport
    dependsOn copyNativeDeps
    doFirst {
        systemProperty "java.library.path", 'build/libs'
    }
}

2. 排查第三方插件冲突

如果升级Jacoco后仍报错,检查项目中是否引入了其他测试报告类第三方插件(比如自定义报告生成插件),这类插件可能也依赖了Gradle旧版测试API,需要同步升级到兼容Gradle 8.x的版本。

3. 验证CodeBuild环境一致性

确认CodeBuild构建流程中使用的Gradle版本确实是8.5,避免环境中存在多版本Gradle导致的执行逻辑不一致问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 08:02:03