res / values / strings.xmlファイルをどのようにフィルタリングしますか?
何かのようなもの:
<resources>
<string name="version_name">${version}</string>
...
build.gradleファイルからの${version}
値に展開されますversion
次の形式のトークンがある場合は、ReplaceTokensをfilterメソッドで使用できます。@token@
したがって、ファイルが次のようになっている場合:
<resources>
<string name="version_name">@version@</string>
...
次に、次のことができます。
import org.apache.tools.ant.filters.ReplaceTokens
def version = '1.0'
processResources{
filter(ReplaceTokens, tokens: ['version': version])
}
これは、フィルターメソッドをサポートするすべてのタスク(拡張するタスクのように見えますAbstractCopyTask
)に対して実行できます。
${token}
フォーマットを維持したいのなら、どうやってやるのかわかりません。別のフィルターを使用するか、ReplaceTokensにフィルターを設定できる場合があります。antでは、開始トークンと終了トークンを設定できるように見えます。
グルーヴィーなクロージャーを使用して、外部のアリを使用しない場合:
filter {
line -> line.replace('${version}', version)
}