如何在解压缩任务后从文件层次结构中排除存档名称?
例如,一旦ant在文件夹C:\temp
中运行解压缩任务,我想要归档档案中的所有文件,但我得到C:\temp\t\file.tmp
。
我可以有效地排除存档中的基本目录吗?
答案 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直接放在存储库文件夹中。