2

res / values / strings.xmlファイルをどのようにフィルタリングしますか?

何かのようなもの:

<resources>
    <string name="version_name">${version}</string>
...

build.gradleファイルからの${version}値に展開されますversion

4

2 に答える 2

3

次の形式のトークンがある場合は、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では、開始トークンと終了トークンを設定できるように見えます。

于 2011-05-23T00:47:03.353 に答える
0

グルーヴィーなクロージャーを使用して、外部のアリを使用しない場合:

filter {
    line -> line.replace('${version}', version)
}
于 2013-06-18T05:31:29.427 に答える