使用任务type:Copy时,有没有一种避免覆盖文件的方法?

这是我的任务:

task unpack1(type:Copy)
{
    duplicatesStrategy= DuplicatesStrategy.EXCLUDE

    delete(rootDir.getPath()+"/tmp")

    from zipTree(rootDir.getPath()+"/app-war/app.war")
    into rootDir.getPath()+"/tmp"


   duplicatesStrategy= DuplicatesStrategy.EXCLUDE
   from rootDir.getPath()+"/tmp"
   into  "WebContent"
}

我想避免使用排除'file/file *'指定所有文件。

看来duplicatesStrategy= DuplicatesStrategy.EXCLUDE不起作用。我读到了有关gradle 0.9的问题,但我使用的是Gradle 2.1。

这个问题还存在吗?

还是我误解了如何正确使用此任务?

谢谢

最佳答案

您始终可以首先检查文件是否存在于目标目录中:

task copyFileIfNotExists << {
  if (!file('destination/directory/myFile').exists())
    copy {
        from("source/directory")
        into("destination/directory")
        include("myFile")
    }
}

10-05 23:58