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

Posted

技术标签:

【中文标题】使用 gradle-android-plugin 过滤 strings.xml?【英文标题】:Filter strings.xml with gradle-android-plugin? 【发布时间】:2011-08-30 17:22:38 【问题描述】:

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

类似:

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

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

【问题讨论】:

【参考方案1】:

如果您的令牌采用以下格式,则可以使用带有过滤方法的 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 中你可以设置开始和结束标记。

【讨论】:

【参考方案2】:

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

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

【讨论】:

在我的 build.gradle 中我在哪里写上面的代码?

以上是关于使用 gradle-android-plugin 过滤 strings.xml?的主要内容,如果未能解决你的问题,请参考以下文章

测试使用

第一篇 用于测试使用

在使用加载数据流步骤的猪中,使用(使用 PigStorage)和不使用它有啥区别?

今目标使用教程 今目标任务使用篇

Qt静态编译时使用OpenSSL有三种方式(不使用,动态使用,静态使用,默认是动态使用)

MySQL db 在按日期排序时使用“使用位置;使用临时;使用文件排序”