首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >独立地压缩多个目录的分级任务

问独立地压缩多个目录的分级任务
EN

Stack Overflow用户
提问于 2017-04-21 20:33:08
回答 1查看 2.8K关注 0票数 4

我正在尝试创建一个任务,它可以查看文件夹内部,并将该文件夹中的所有文件夹压缩到某个输出文件夹。

初始状态:

代码语言:javascript
复制
Folder1
    -> project1
        ->code //some more files within project1
    -> project2
        ->code

目标状态:

代码语言:javascript
复制
Destination
    project1.zip
    project2.zip

我尝试使用以下代码,但它正在压缩folder1中的所有内容

代码语言:javascript
复制
task myZip(type: Zip) {
   from 'Folder1'   
   archiveName 'Compress.zip'
   destinationDir file('build')
}

我可能需要使用一些包含project1和project2信息的集合,然后迭代地压缩到目标文件夹。对这种方法有异议。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-21 21:54:21

每个Gradle Zip任务只能创建一个Zip文件,因为您可以读取这里。

因此,您需要创建多个任务。因此,您可以遍历子目录并为每个子目录创建一个新的Zip任务。生成的任务可以通过dependsOn绑定到根任务中。

代码语言:javascript
复制
task myZip() {
    file('Folder1').eachDir { sub ->
        dependsOn tasks.create("${name}_${sub.name}", Zip) {
            from sub
            baseName sub.name
            destinationDir file('Destination')
        }
    }
}
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43551572

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档