Ant zip:如何从路径中删除原始目录

时间:2014-11-03 21:03:13

标签: ant zip

我有这个结构

component1/Database1/...
component1/Code/...

component2/Database2/...
component2/Code/...

etc...

我想创建一个具有以下结构的zip:

Database1/...
Database2/...
etc...

使用此代码:

<zip destfile="DB.zip"
     basedir="BuildPath" includes="*/Database*/**">

</zip>

它创建:

component1/Database1/...
component2/Database2/...

关于如何摆脱第一个目录的建议? 感谢

2 个答案:

答案 0 :(得分:2)

我找到了一种方法来完成这项工作,首先将文件复制到临时文件夹,然后创建zip文件。到目前为止,我还无法弄清楚如何将两个步骤合并为一个调用以提高效率:

<copy todir="DBTemp" overwrite="false">
            <fileset dir="${SourceDirectory}">
                <include name="*/Database*/**" />
            </fileset>
            <cutdirsmapper dirs="1"/>
        </copy>

        <zip destfile="DB.zip" basedir="DBTemp"  />

当我发布这个问题时,我绝对不知道的功能是“cutdirsmapper”。这允许我提前创建结构。

答案 1 :(得分:1)

为什么不尝试将文件夹结构复制到临时文件夹并尝试压缩它?

https://ant.apache.org/manual/Tasks/copydir.html https://ant.apache.org/manual/Tasks/zip.html