Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gradle 压缩文件夹的内容_Gradle - Fatal编程技术网

Gradle 压缩文件夹的内容

Gradle 压缩文件夹的内容,gradle,Gradle,我想压缩包文件夹的内容。 如何在gradle任务中执行此操作 我正试着这样做 task publishAll << { new File('src/main/resources/com/domain/application/').eachDir() { dir -> processFolder(dir) } } def processFolder(dir) { println "prepare folder: " + dir 任务发布

我想压缩包文件夹的内容。 如何在
gradle
任务中执行此操作

我正试着这样做

task publishAll << {
    new File('src/main/resources/com/domain/application/').eachDir() {
        dir -> processFolder(dir)
    }
}

def processFolder(dir) {
    println "prepare folder: " + dir
任务发布所有进程文件夹(dir)
}
}
def processFolder(目录){
println“准备文件夹:”+dir
它似乎可以返回第一级子文件夹。
但是如何压缩该
dir
文件夹?

您可以使用
zip
类型创建自定义任务,并使用
FileTree
将包含其内容的所有子文件夹包含到压缩存档中,如:

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){

        }
    }
}

task publish我想
zip
将每个文件夹压缩到单独的文件中。压缩只是其中的一个子过程task@user1432980更新了答案。现在它为目标目录中的每个一级文件夹创建一个存档