Ant解压缩任务 - 如何从提取的层次结构中排除存档名称?

时间:2010-07-03 19:48:01

标签: ant unzip

如何在解压缩任务后从文件层次结构中排除存档名称?

例如,一旦ant在文件夹C:\temp中运行解压缩任务,我想要归档档案中的所有文件,但我得到C:\temp\t\file.tmp

我可以有效地排除存档中的基本目录吗?

3 个答案:

答案 0 :(得分:3)

使用映射器指定文件在目标目录中的显示方式:

<unzip src="t.zip" dest="temp">
    <globmapper from="t/*" to="*"/>
</unzip>

答案 1 :(得分:2)

现在更好的解决方案是cutdirsmapper

<unzip src="t.zip" dest="temp">
    <cutdirsmapper dirs="1"/>
</unzip>

答案 2 :(得分:1)

我用:

<mapper type="flatten" />   


另请参阅https://www.safaribooksonline.com/library/view/ant-the-definitive/0596001843/ch04s10.html

  

展平映射器从文件名中删除所有路径信息。

例如在build.xml中:

<target name="extract-xsd">
    <unzip src="./cache/nl.packagename.example/xx/jars/somepackage.jar" dest="repository">
        <mapper type="flatten" />
        <patternset>
            <include name="**/Example.xsd"/>
            <include name="**/Example.wsdl"/>
        </patternset>
    </unzip>
</target>

因此,Example.xsd和Example.wsdl直接放在存储库文件夹中。