解压缩时删除目录

时间:2012-05-01 10:16:28

标签: gradle

我正在将zip文件解压缩到一个目录中。 zip文件有一个额外的顶级目录,我不想在解压缩的目标中。

task unpackDojoSource(type: Copy) {
    new File("build/dojo/src").mkdirs()
    from(zipTree(dojoSource)) {
        eachFile { details -> details.path = 
           details.path.substring(details.relativePath.segments[0].length()) } 
    } into "build/dojo/src"
}

该任务产生以下输出

/dijit
/dojo
/dojo-release-1.7.2
   /dijit
   /dojo
   /dojox
   /util
/dojox
/util

有没有办法阻止创建dojo-release目录?

价: http://gradle.markmail.org/thread/x6gmbrhhen63rybe#query:+page:1+mid:lws7nlqcncjumnvs+state:results

2 个答案:

答案 0 :(得分:2)

我自己也遇到了这个问题。我之后通过删除来解决这个问题。不太理想但仍然有效。

    delete "dojo-release-1.7.2"

答案 1 :(得分:1)

我只是偶然发现了同样的问题。您唯一需要做的就是将includeEmptyDirs = false添加到您的副本规范中,如下所示:

task unpackDojoSource(type: Copy) {
    new File("build/dojo/src").mkdirs()
    from(zipTree(dojoSource)) {
        eachFile { details -> details.path = 
           details.path.substring(details.relativePath.segments[0].length()) } 
    } into "build/dojo/src"
    includeEmptyDirs = false
}

生成的结构不会包含展平所留下的空目录。