1

一部のファイルに他のファイルと共通の内容が含まれる複数のzipファイルを作成する必要があります。各zipのファイルの完全なリストを指定するのではなく(実際にはかなり大きい)、再利用を試みたいと思いました。

だから私はこれに使っ<union>てみました:

<project name="test" default="zips">
  <target name="zips">
    <union id="common">
      <zipfileset prefix="." dir="." includes="1"/>
      <zipfileset prefix="3" dir="." includes="2"/>
    </union>
    <zip zipfile="1.zip">
      <resources refid="common"/>
    </zip>
    <zip zipfile="2.zip">
      <resources refid="common"/>
    </zip>
  </target>
</project>

これにより、それぞれに「1」と「2」が含まれる2つのzipファイルが生成されますが、両方のファイルに「3」プレフィックスがありません。

私は何が間違っているのですか?

内部でzipfilesetを使用するカスタムタスクもあります。ユニオンでも動作するようにしようとしましたが、プレフィックス値を取得する方法がわかりませんでした。

4

1 に答える 1

2

commonリソースコレクションにこれを試してください:

<union id="common">
  <fileset dir="." includes="1"/>
  <mappedresources>
      <fileset dir="." includes="2"/>
      <globmapper from="*" to="3/*"/>
  </mappedresources>
</union>

aのprefixパラメーターは、パラメーターでzipfileset指定されたアーカイブからファイルを読み取る場合にのみ使用されsrcます。それ以外の場合は無視されます。これは、表示される動作です。使用するために、作成されたアーカイブでプレフィックスを指定しようとしています。そのためにはマッパーが必要です。

参照:Ant docs formappedresources.

于 2012-10-16T14:02:56.427 に答える