Sam*_*mmy 3 gradle build.gradle
我正在尝试创建一个任务,该任务看起来在一个文件夹内,并将该文件夹内的所有文件夹压缩到某个输出文件夹。
初始状态:
Folder1
-> project1
->code //some more files within project1
-> project2
->code
Run Code Online (Sandbox Code Playgroud)
目标状态:
Destination
project1.zip
project2.zip
Run Code Online (Sandbox Code Playgroud)
我尝试使用下面的代码,但它压缩了folder1内的所有内容
task myZip(type: Zip) {
from 'Folder1'
archiveName 'Compress.zip'
destinationDir file('build')
}
Run Code Online (Sandbox Code Playgroud)
我可能需要使用一些包含project1和project2信息的集合,并将其迭代地压缩到目标文件夹。这种方法有问题。
每个Gradle Zip任务只能创建一个Zip文件,您可以在此处阅读。
因此,您需要创建多个任务。因此,您可以遍历子目录并Zip为每个子目录创建一个新任务。生成的任务可以通过以下方式捆绑到根任务中dependsOn:
task myZip() {
file('Folder1').eachDir { sub ->
dependsOn tasks.create("${name}_${sub.name}", Zip) {
from sub
baseName sub.name
destinationDir file('Destination')
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1617 次 |
| 最近记录: |