Replaceタスクはディレクトリベースのタスクで、 選択したファイル中のある文字列を与えられた別の文字列に置換します。
行をまたがるテキストを置換したい場合は、
ネストした <replacetoken> 要素を使ってください。
The output file is only written if it differs from the existing file. This prevents spurious rebuilds based on unchanged files which have been regenerated by this task.
| 属性 | 説明 | 必須 |
| file | トークンを置換する対象ファイル | 必ず 2 つのうちの 1つ |
| dir | 複数ファイルの文字を置換するときに使われるベースディレクトリ | |
| encoding | 置換操作を行うファイルのエンコーディング | No - デフォルトはデフォルトJVMのエンコーディング |
| token | 置換されるトークン | ネストした
replacetoken 要素か replacefilterfile 属性を
使用しない限りYes |
| value | トークンの新しい値。省略された場合は、空文字列 ("") が使用されます。 | No |
| summary | 置換操作が実行されたかのサマリー。 処理された文字列とファイルの数を表示します。 | No, デフォルトではサマリーは表示されません |
| propertyFile | 有効なプロパティーファイル。ネストした <replacefilter> 要素で使用されます。
|
<replacefilter> の property 属性としてのみ Yes |
| replacefilterfile | 有効なプロパティーファイル。
tokenと一致するプロパティーの
各プロパティーが replacefilter として扱われ、
valueはプロパティーの値となります。 |
No. |
| includes | 包含しなければならないファイルのパターンのカンマかスペースで区切られたリスト。 省略した時には、すべてのファイルが含まれます。 | No |
| includesfile | ファイル名。 このファイルの各行は、 包含パターンとして解釈されます。 | No |
| excludes | 除外するファイルのパターンのコンマかスペース区切られたリスト。 省略時は(デフォルト除外集合を除いて)除外されるファイルはありません。 | No |
| excludesfile | ファイル名。 このファイルの各行は除外パターンとして解釈されます。 | No |
| defaultexcludes | デフォルト除外集合を使用するかどうか("yes"/"no") を指定します。省略したときにはデフォルト除外集合を使用します。 | No |
<replace file="${src}/index.html" token="@@@" value="wombat"/>
${src}/index.htmlファイルの中の出現した"@@@"文字列を"wombat"文字列で置換します。
このタスクは暗黙のFileSetを持っていて、
ネストした <include>と<exclude>、
<patternset> 要素と同様に、
<fileset>属性のすべてをサポートします。
置換したい、または置換されるテキストのどちらかが行をまたがっている場合には、 それを指定するためにネストした要素を使用できます。
<replace dir="${src}" value="wombat">
<include name="**/*.html"/>
<replacetoken><![CDATA[multi line
token]]></replacetoken>
</replace>
${src}ディレクトリ以下のすべてのHTMLファイル中の
文字列"multi
line\ntoken"を、文字列"wombat"で置換します。
\nは、プラットホームに依存する改行を表します。
<replace file="${src}/index.html">
<replacetoken><![CDATA[two line
token]]></replacetoken>
<replacevalue><![CDATA[two line
token]]></replacevalue>
</replace>
任意のネストした<replacefilter>要素は、
複数の置換が可能な上に、
プロパティファイルから読み込んだ値で置換できます。
このファイルの名前は<replace>の属性propertyFile
を使って指定します。
| 属性 | 説明 | 必須 |
| token | 検索する文字列 | Yes |
| value | 置換する文字列 | どちらか一方。両方は不可。望むなら両方省略は可能。 |
| property | プロパティーの名前。プロパティーの値で置換されます。 |
もし value も property も使用されなければ、
<replace> 属性のvalue
および/あるいは <replacevalue> 要素が
置換する値として使われます。
もし、これらのオプションのどれも使われていなければ、token は空文字列に置き換えられます。
<replace
file="configure.sh"
value="defaultvalue"
propertyFile="source/name.properties">
<replacefilter
token="@token1@"/>
<replacefilter
token="@token2@"
value="value2"/>
<replacefilter
token="@token3@"
property="property.key"/>
</replace>
configure.shファイル中のすべての"@token1@"
インスタンスを "defaultvalue"に置換し、
すべての "@token2@" インスタンスを "value2"に置換し、
すべての "@token3@" インスタンスを
プロパティーファイルsrc/name.propertiesの
プロパティー"property.key"で置換します。
Note:
token/<replacetoken> と
value/<replacevalue> 属性/要素
の両方が、
ネストしたreplacefilter要素や同じ操作の中で
使用可能です。
Copyright © 2000-2004 The Apache Software Foundation. All rights Reserved.
[訳注:これは宮本信二,風間一洋の訳を参考に、横田聡が翻訳しました。日本語訳に対するコメントがあれば report@jajakarta.orgに送ってください]