2

我正在将一个 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

4

2 回答 2

2

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

    delete "dojo-release-1.7.2"
于 2012-06-29T16:51:46.713 回答
2

我只是偶然发现了同样的问题。您唯一需要做的就是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
}

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

于 2016-05-06T11:35:59.247 回答