gradle 如何使用复制任务复制目录
How to copy a directory using Copy task in gradle
我想在单个复制任务中将一系列文件和整个目录复制到另一个目录。我可以复制单个文件,以及目录的 内容 ,但是如何复制目录本身?
这是我的任务:
task myTask(type: Copy) {
from 'path/to/file'
from 'path/to/dir'
into 'path/to/target'
}
复制文件OK,但只复制目录中的文件。我想以 path/to/target/dir
中的目录内容结束(而不是 path/to/target
)。
我找到了解决方法:
task myTask(type: Copy) {
from 'path/to/file'
from 'path/to'
into 'path/to/target'
include 'dir'
}
但这很容易发生名称冲突。我实际上有很多文件和目录要复制,我想把它作为一项任务。
我知道的唯一解决你的问题的办法是:
task myTask(type: Copy) {
into 'path/to/target'
from 'path/to/file'
into ('dir') {
from 'path/to/dir'
}
}
请记住,into: ('dir')
施工相对于 path/to/target/
位置
Gradle 网站 here or click "Get Free Ebook" here 上有一本书可供下载:"Gradle Beyond the Basics" 直接回答了您的问题第 3 页的问题(转换目录结构)。
应用于您的示例,解决方案如下:
task myTask(type: Copy) {
from 'path/to/file'
from 'path/to/dir' {
into 'dir'
}
into 'path/to/target'
}
限制是它不会从源中动态确定二级目标目录的名称(dir),但这是一种干净的方法。
我想在单个复制任务中将一系列文件和整个目录复制到另一个目录。我可以复制单个文件,以及目录的 内容 ,但是如何复制目录本身?
这是我的任务:
task myTask(type: Copy) {
from 'path/to/file'
from 'path/to/dir'
into 'path/to/target'
}
复制文件OK,但只复制目录中的文件。我想以 path/to/target/dir
中的目录内容结束(而不是 path/to/target
)。
我找到了解决方法:
task myTask(type: Copy) {
from 'path/to/file'
from 'path/to'
into 'path/to/target'
include 'dir'
}
但这很容易发生名称冲突。我实际上有很多文件和目录要复制,我想把它作为一项任务。
我知道的唯一解决你的问题的办法是:
task myTask(type: Copy) {
into 'path/to/target'
from 'path/to/file'
into ('dir') {
from 'path/to/dir'
}
}
请记住,into: ('dir')
施工相对于 path/to/target/
位置
Gradle 网站 here or click "Get Free Ebook" here 上有一本书可供下载:"Gradle Beyond the Basics" 直接回答了您的问题第 3 页的问题(转换目录结构)。
应用于您的示例,解决方案如下:
task myTask(type: Copy) {
from 'path/to/file'
from 'path/to/dir' {
into 'dir'
}
into 'path/to/target'
}
限制是它不会从源中动态确定二级目标目录的名称(dir),但这是一种干净的方法。