使用gradle-android-plugin过滤strings.xml?

时间:2011-05-22 19:45:57

标签: android gradle

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

类似的东西:

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

${version}将从build.gradle文件扩展为version的值

2 个答案:

答案 0 :(得分: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上设置过滤器。看起来像蚂蚁,你可以设置开始和结束标记。

答案 1 :(得分:0)

如果你喜欢没有蚂蚁外部的话,那就是groovy闭合:

filter {
    line -> line.replace('${version}', version)
}