FilterSet

フィルタセットはフィルタの集合です。 フィルタはトークンと値の組で定義するか、 ファイルより読み込みます。 フィルタセットはこの機能をサポートするタスクの中か、 <target>と同じレベルで現れます。- 即ち<project>の子のレベルです。

フィルタセットは、idrefid属性をサポートします。 id属性と共に、フィルタセットを定義でき、 refid属性と共に、他のフィルタセットからその定義を参照します。 フィルタ含みの集合を取得するためにフィルタセットへ フィルタセットをネストすることは可能です。

それに加え、 フィルタセットでは、 マッチするものを定義するために、 begintokenおよび/または endtoken属性を指定することができます。

フィルタセットは <copy> などのタスクで、 置換を行うために用いられます。

注意: フィルタセットが操作で使われるときに、 ファイルはテキストモードで処理され、フィルタは行によって境界線として適用します。 この意味は、コピー操作がバイナリファイルに対してですと、一般的によくないです。 フィルタを適用するとき、ファイルの集合はすべてテキストファイルであることを確認すべきです。

Filterset

属性 説明 デフォルト 必須
begintoken トークンの始まりを示す文字列 (例 @DATE@) @ No
endtoken トークンの終わりを示す文字列 (例 @DATE@) @ No

Filter

属性 説明 必須
token 置換されるトークン (例 @DATE@) Yes
value 置き換える値 (例 Thursday, April 26, 2001) Yes

Filtersfile

属性 説明 必須
file トークンをロードする名前と値の組のプロパティファイル Yes

トークン @DATE@ を今日の日付に置き換えようとしながら、 version.txt ファイルを build ディレクトリから、 dist ディレクトリにコピーします。

<copy file="${build.dir}/version.txt" toFile="${dist.dir}/version.txt">
  <filterset>
    <filter token="DATE" value="${TODAY}"/>
  </filterset>
</copy>

トークン %DATE* を今日の日付に置き換えようとしながら、 version.txt ファイルを build ディレクトリから、 dist ディレクトリにコピーします。

<copy file="${build.dir}/version.txt" toFile="${dist.dir}/version.txt">
  <filterset begintoken="%" endtoken="*">
    <filter token="DATE" value="${TODAY}"/>
  </filterset>
</copy>

全ての日付と適切な注意書きをファイルに保存されている通りに変更しながら、全ての docs にあるファイルをコピーします。

<copy toDir="${dist.dir}/docs">
  <fileset dir="${build.dir}/docs">
    <include name="**/*.html">
  </fileset>
  <filterset begintoken="%" endtoken="*">
    <filtersfile file="${user.dir}/dist.properties"/>
  </filterset>
</copy>

下記にFilterSetとその参照を定義します。

<filterset id="myFilterSet" begintoken="%" endtoken="*">
  <filter token="DATE" value="${TODAY}"/>
</filterset>

<copy file="${build.dir}/version.txt" toFile="${dist.dir}/version.txt">
  <filterset refid="myFilterSet"/>
</copy>

Copyright © 2001-2004 The Apache Software Foundation. All rights Reserved.

[訳注:これは漆島賢二の訳を参考に、横田聡が翻訳しました。日本語訳に対するコメントがあれば report@jajakarta.orgに送ってください]