Ant zipfileset重命名文件

aRa*_*nol 6 ant rename

我想包含文件,zipfileset但也重命名它

例如

<zipfileset dir="${basedir}/test/target"   prefix="webapps">
    <include name="test*.war"/>
</zipfileset>
Run Code Online (Sandbox Code Playgroud)

但想从改名test.warsample.war

怎么实现这个?谢谢.

mar*_*ton 7

您可以使用mappedresources资源集合执行所需的操作.这对我来说是一个基本测试(一个输入战争叫做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
Run Code Online (Sandbox Code Playgroud)


Pet*_*vic 1

我认为这是不可能的,我会采用两步方法。

重命名并添加:

<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>
Run Code Online (Sandbox Code Playgroud)

或复制并添加(如果您两者都需要):

<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>
Run Code Online (Sandbox Code Playgroud)