我正在尝试创建一个任务,它可以查看文件夹内部,并将该文件夹中的所有文件夹压缩到某个输出文件夹。
初始状态:
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信息的集合,然后迭代地压缩到目标文件夹。对这种方法有异议。
发布于 2017-04-21 21:54:21
每个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')
}
}
}https://stackoverflow.com/questions/43551572
复制相似问题