我如何过滤res / values / strings.xml文件?
类似的东西:
<resources>
<string name="version_name">${version}</string>
...
${version}
将从build.gradle文件扩展为version
的值
答案 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)
}