Gradle Copy任务:如何覆盖现有文件?

时间:2012-09-07 14:07:51

标签: java copy gradle overwrite

Copy api没有提到可以设置的标志/属性。那么什么是默认操作以及如何修改它?


根据this

  

从Gradle 0.9.1开始,复制任务始终会覆盖文件。另一个   策略尚不支持。

3 个答案:

答案 0 :(得分:8)

正如问题文本所述,Copy任务会覆盖文件,目前不支持其他策略。如果在您的情况下这不合适,您可以随时回退到Ant任务。

答案 1 :(得分:3)

查看DuplicatesStrategy http://www.gradle.org/docs/1.7-rc-1/release-notes#duplicate-file-handling-for-copy-and-archive-operationshttp://www.gradle.org/docs/current/javadoc/org/gradle/api/file/DuplicatesStrategy.html。两者都适用于非覆盖复制(默认情况下覆盖复制)。

duplicatesStrategy 'exclude'

同时检查Gradle Zip DuplicatesStrategy not working correctly是否存在嵌套“from”的错误。

答案 2 :(得分:2)

当我使用任务复制时,我遇到同样的问题,gradle始终执行最新检查,导致复制被跳过。

在阅读了gradle用户手册的更多内容之后,我发现我们可以使用project.copy()方法而不是任务复制。此方法跳过最新检查,因此文件将始终复制到目标。

task myCopy << {
    copy {
        from (yourSourceDir)
        into (yourDestDir)
    }
}