我想包括文件zipfileset
,但其重命名以及蚂蚁zipfileset重命名文件
例如
<zipfileset dir="${basedir}/test/target" prefix="webapps">
<include name="test*.war"/>
</zipfileset>
,但想改变test.war
名sample.war
如何实现这一目标?谢谢。
我想包括文件zipfileset
,但其重命名以及蚂蚁zipfileset重命名文件
例如
<zipfileset dir="${basedir}/test/target" prefix="webapps">
<include name="test*.war"/>
</zipfileset>
,但想改变test.war
名sample.war
如何实现这一目标?谢谢。
我不认为这是可能的,我会去2个步骤的方法。
要么重新命名,并添加:
<move file="${basedir}/test/target/test.war" tofile="${basedir}/test/target/sample.war"/>
<zipfileset dir="${basedir}/test/target" prefix="webapps">
<include name="sample*.war"/>
</zipfileset>
或复制,并添加(如果你需要两个):
<copy file="${basedir}/test/target/test.war" tofile="${basedir}/test/target/sample.war"/>
<zipfileset dir="${basedir}/test/target" prefix="webapps">
<include name="sample*.war"/>
</zipfileset>
除了由Peter提到的解决方案,如果你不希望保留2相同文件的副本...您可以删除复制的副本...
<copy file="${basedir}/test/target/test.war" tofile="${basedir}/test/target/sample.war"/>
<zipfileset dir="${basedir}/test/target" prefix="webapps">
<include name="sample*.war"/>
</zipfileset>
<delete file="${basedir}/test/target/sample.war"/>
现在您不会有重复副本o f test.war。
你可以用mappedresources
resource collection做你想做的。 在基本测试这种“为我工作”(一个输入的战争称为test1.war
):
<mappedresources id="mapped.zfs">
<zipfileset dir="${basedir}/test/target">
<include name="test*.war"/>
</zipfileset>
<globmapper from="test*" to="webapps/sample*" />
</mappedresources>
<zip destfile="eg.zip">
<resources refid="mapped.zfs" />
</zip>
% unzip -l eg.zip
Archive: eg.zip
Length Date Time Name
--------- ---------- ----- ----
0 11-27-2012 00:19 webapps/
1423 11-27-2012 00:16 webapps/sample1.war
--------- -------
1423 2 files
马丁·克莱顿的回答为我工作。我也能够在一个元素(如儿童)中做到这一切:
<zip destfile="eg.zip">
<mappedresources>
<zipfileset file="test*.war"/>
<globmapper from="test*" to="webapps/sample*" />
</mappedresources>
<!-- additional file-sets and resources may be listed here -->
</zip>