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

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

类似:

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

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

【问题讨论】:

    标签: android gradle


    【解决方案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 中我在哪里写上面的代码?
      猜你喜欢
      • 1970-01-01
      • 2012-06-09
      • 2015-09-16
      • 2015-05-25
      • 2013-06-14
      • 1970-01-01
      • 1970-01-01
      • 2019-06-10
      • 1970-01-01
      相关资源
      最近更新 更多