フィルタセットはフィルタの集合です。
フィルタはトークンと値の組で定義するか、
ファイルより読み込みます。
フィルタセットはこの機能をサポートするタスクの中か、
<target>と同じレベルで現れます。-
即ち<project>の子のレベルです。
フィルタセットは、idとrefid属性をサポートします。
id属性と共に、フィルタセットを定義でき、
refid属性と共に、他のフィルタセットからその定義を参照します。
フィルタ含みの集合を取得するためにフィルタセットへ
フィルタセットをネストすることは可能です。
それに加え、
フィルタセットでは、
マッチするものを定義するために、
begintokenおよび/または
endtoken属性を指定することができます。
フィルタセットは
<copy> などのタスクで、
置換を行うために用いられます。
注意: フィルタセットが操作で使われるときに、 ファイルはテキストモードで処理され、フィルタは行によって境界線として適用します。 この意味は、コピー操作がバイナリファイルに対してですと、一般的によくないです。 フィルタを適用するとき、ファイルの集合はすべてテキストファイルであることを確認すべきです。
| 属性 | 説明 | デフォルト | 必須 |
| begintoken | トークンの始まりを示す文字列
(例 @DATE@) |
@ | No |
| endtoken | トークンの終わりを示す文字列
(例 @DATE@) |
@ | No |
| 属性 | 説明 | 必須 |
| token | 置換されるトークン (例 @DATE@) |
Yes |
| value | 置き換える値
(例 Thursday, April 26, 2001) |
Yes |
| 属性 | 説明 | 必須 |
| 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に送ってください]