<copy>
タスクを持つ一般的なAntビルドスクリプトを書いて、正規表現に基づいてファイルの名前を変更することもできます。ネストされた<regexpmapper>
は、プロジェクト固有のプロパティファイル(存在する場合)からリネームパターンをロードします。Ant regexp mapper:ファイルからパターンを読み込む?
すでに誰かがこれを行っているのですか、それとも自分でマッパーを作成する必要がありますか?
<copy>
タスクを持つ一般的なAntビルドスクリプトを書いて、正規表現に基づいてファイルの名前を変更することもできます。ネストされた<regexpmapper>
は、プロジェクト固有のプロパティファイル(存在する場合)からリネームパターンをロードします。Ant regexp mapper:ファイルからパターンを読み込む?
すでに誰かがこれを行っているのですか、それとも自分でマッパーを作成する必要がありますか?
これを行う方法の例を次に示します。
プロジェクトのプロパティはproj_props.txt
ファイル含まれています
use.filter=regexp.mapper
from.regexp=(.*)_test(.*)
to.regexp=\\1\\2
(エスケープ文字列にで\
に注意してください。)
ビルドファイル:
<property file="proj_props.txt" />
<!-- filter for regexp -->
<filtermapper id="regexp.mapper">
<tokenfilter>
<replaceregex pattern="${from.regexp}"
replace="${to.regexp}" />
</tokenfilter>
</filtermapper>
<!-- identity filter, used when no regexp needed -->
<filtermapper id="identity.mapper" />
<!-- decide which filter to use -->
<condition property="chosen.mapper"
value="regexp.mapper" else="identity.mapper">
<isset property="use.filter" />
</condition>
<copy todir="...">
<fileset>
...
</fileset>
<filtermapper refid="${chosen.mapper}" />
</copy>
あなたはfiltermapper
インスタンス、1のカップルを定義しますプロジェクトプロパティファイルのプロパティに基づいて正規表現を置き換えるもの、他のものはnoもの。 use.filter
プロパティは、どちらが選択されるかを決定します。プロジェクトプロパティファイルが存在しない場合、use.filter
は設定されません。したがって、「何もしない」アイデンティティfiltermapperが使用されます。
これは、copy
タスクでネストされたリソースを使用する場合にのみ機能することに注意してください。コピーするファイルが1つしかなく、<copy file="..."
を使用している場合、filtermapperは無視されます。