【问题标题】:Gradle 7 task ':distTar' is a duplicate but no duplicate handling strategy has been setGradle 7 任务 ':distTar' 重复但未设置重复处理策略
【发布时间】:2026-02-10 17:25:01
【问题描述】:

我已从 gradle 5 升级到 gradle 7,现在收到以下错误。 ':distTar' 是重复但未设置重复处理策略。

在 build.gradle 文件中,我最初收到错误消息:“任务 ':bootJar' 执行失败。是重复的,但未设置重复处理策略。”为了消除此错误,我在 build.gradle 中使用了以下内容:

tasks.withType(Jar).all {
    duplicatesStrategy 'exclude'
}

然后,这给了我以下错误,我正在寻求帮助。我相信任务 distTar 来自我的插件“应用程序”,但我找不到引用该任务以添加重复策略来解决问题的方法。

感谢任何帮助解决此错误! 谢谢!

【问题讨论】:

    标签: gradle build.gradle


    【解决方案1】:

    试过了,效果不错。

    tasks.withType<Tar> {
        duplicatesStrategy = DuplicatesStrategy.EXCLUDE
    }
    
    tasks.withType<Zip>{
        duplicatesStrategy = DuplicatesStrategy.EXCLUDE
    }
    

    【讨论】:

      【解决方案2】:

      你需要使用正则括号...

      tasks.withType(Tar){
          duplicatesStrategy = DuplicatesStrategy.EXCLUDE
      }
      
      tasks.withType(Zip){
          duplicatesStrategy = DuplicatesStrategy.EXCLUDE
      }
      

      【讨论】:

      • 正则括号在我的情况下起到了作用,谢谢!!!