6

ファイルをインクルードしたいのですがzipfileset、名前も変更します

例えば

<zipfileset dir="${basedir}/test/target"   prefix="webapps">
    <include name="test*.war"/>
</zipfileset>

test.war名前を からに変更したいsample.war

これを達成する方法は?ありがとうございました。

4

4 に答える 4

7

mappedresourcesおそらく、リソース コレクションを使用して、やりたいことを実行できます。これは、基本的なテストで「うまくいきました」(と呼ばれる1つの入力戦争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
于 2012-11-27T00:25:13.847 に答える
1

私はこれが可能だとは思わない.私は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>
于 2012-11-26T12:59:31.007 に答える
1

マーティンクレイトンの答えは私にとってはうまくいきました。また、すべてを 1 つの要素で (子として) 実行することもできました。

<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>
于 2014-09-05T17:51:27.110 に答える
0

ピーターが述べた解決策に加えて、同じファイルの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"/>

これで、test.warのコピーが重複することはありません。

于 2012-11-26T19:02:36.940 に答える