使用任务时有没有办法避免覆盖文件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"
}
Run Code Online (Sandbox Code Playgroud)
我想避免使用exclude'file/file*'指定所有文件.
看起来这duplicatesStrategy= DuplicatesStrategy.EXCLUDE不起作用.我在Gradle 0.9上读到了一个问题,但我正在使用Gradle 2.1.
这个问题还存在吗?
或者我误解了如何正确使用这项任务?
谢谢
BugOrFeature 答案的进一步细化。它使用简单的字符串作为 from 和 into 参数,使用 CopySpec 的 destinationDir 属性来解析目标文件到文件的相对路径:
task ensureLocalTestProperties(type: Copy) {
from zipTree('/app-war/app.war')
into 'WebContent'
eachFile {
if (it.relativePath.getFile(destinationDir).exists()) {
it.exclude()
}
}
}
Run Code Online (Sandbox Code Playgroud)
您始终可以先检查文件是否存在于目标目录中:
task copyFileIfNotExists << {
if (!file('destination/directory/myFile').exists())
copy {
from("source/directory")
into("destination/directory")
include("myFile")
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4929 次 |
| 最近记录: |