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

Gradle7.3+Java17升级出现processIntTestResources重复条目未设置处理策略错误

Gradle 7.x 升级 processIntTestResources 重复文件报错排查方案

Gradle 7.0+ 修改了Copy类型任务的默认行为,未显式声明重复策略时遇到重复文件会直接报错,而processIntTestResources是Java插件根据你定义的intTest sourceSet自动生成的Copy类型任务,无需你手动声明,所以会触发报错。
以下是可行的排查&解决方向:

  • 全局统一配置所有Copy任务策略
    你之前的配置未生效是因为没有指定作用于Copy类型任务,在根项目build.gradle的最外层添加如下配置即可全局生效:
    tasks.withType(Copy) {
        duplicatesStrategy = DuplicatesStrategy.INCLUDE
    }
    
    如果使用Kotlin DSL,写法如下:
    tasks.withType<Copy> {
        duplicatesStrategy = DuplicatesStrategy.INCLUDE
    }
    
  • 单独针对集成测试资源任务配置
    如果你不想全局修改所有Copy任务的行为,只需要针对报错的processIntTestResources任务单独配置即可,在对应模块的build.gradle中添加:
    tasks.named("processIntTestResources") {
        duplicatesStrategy = DuplicatesStrategy.INCLUDE
    }
    
  • 排查重复文件来源
    如果你需要定位重复文件的产生原因,避免直接忽略带来的未知风险,可以执行如下命令打印任务的详细日志,查看重复文件的两个来源路径:
    ./gradlew :[root module]:[module]:processIntTestResources --info
    
    通常重复来源为intTest资源目录与main/test资源目录存在同名文件,或依赖的第三方Jar包中存在同名资源文件,你可以根据实际情况选择DuplicatesStrategy.EXCLUDE/DuplicatesStrategy.FAIL等更匹配需求的策略。
  • 检查插件配置覆盖
    如果全局配置不生效,大概率是项目中引入的集成测试相关插件(比如官方的jvm-test-suite插件、第三方集成测试插件)对processIntTestResources任务的配置优先级更高,覆盖了全局配置,这种情况使用上面的单任务配置即可生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 06:45:01