2

我将如何过滤我的 res/values/strings.xml 文件?

就像是:

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

${version}扩展为version来自 build.gradle 文件的值

4

2 回答 2

3

如果您的令牌采用以下格式,则可以将 ReplaceTokens 与过滤方法一起使用:@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

使用 groovy 闭包,如果您更喜欢没有 ant external:

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