我想压缩包文件夹的内容。
如何在gradle
任务中执行此操作?
我想这样做
task publishAll << {
new File('src/main/resources/com/domain/application/').eachDir() {
dir -> processFolder(dir)
}
}
def processFolder(dir) {
println "prepare folder: " + dir
似乎返回第一级子文件夹很好。
但是如何压缩dir
文件夹?
答案 0 :(得分:1)
您可以使用Zip
类型创建自定义任务,并使用FileTree
将所有子文件夹包含在zip-archive中,例如:
task publishAll(type: Zip){
from fileTree(dir: 'src/main/resources/com/domain/application/')
}
如果您想另外打印文件名,可以将其修改为:
from fileTree(dir: 'src/main/resources/com/domain/application/').each {println it.name}
更新:要将每个文件夹归档到单独的zip文件中,您可以使用您的解决方案遍历目录并添加ant.zip
任务,以打包它们,如:
task publishAll << {
new File('src/main/resources/com/domain/application/').eachDir {
ant.zip(destfile: it.name+'.zip', basedir: it.path){
}
}
}