我正在尝试创建一个查看文件夹内部的任务,并将该文件夹中的所有文件夹压缩到某个输出文件夹。
初始状态:
Folder1
-> project1
->code //some more files within project1
-> project2
->code
目标状态:
Destination
project1.zip
project2.zip
我尝试使用以下代码,但它正在压缩folder1
中的所有内容task myZip(type: Zip) {
from 'Folder1'
archiveName 'Compress.zip'
destinationDir file('build')
}
我可能需要使用一些包含project1和project2信息的集合,并迭代地压缩到目标文件夹。遇到这种方法的问题。
答案 0 :(得分:4)
每个Gradle Zip
任务只能创建一个Zip文件,因为您可以阅读here。
因此,您需要创建多个任务。因此,您可以遍历子目录并为每个子目录创建一个新的Zip
任务。生成的任务可以通过dependsOn
:
task myZip() {
file('Folder1').eachDir { sub ->
dependsOn tasks.create("$name|$sub.name", Zip) {
from sub
baseName sub.name
destinationDir file('Destination')
}
}
}