可以gradle做替换,因为它复制资源?

时间:2014-02-18 01:22:54

标签: groovy gradle

对于一组开发人员,所有差异都存储在普通属性文件中:

token1=some value
token2=9000
etc.

'令牌'用于一系列XML文件,这些文件位于普通的src / main / resources目录中。当Gradle将这些文件复制到构建目录中时(我不确定是什么任务),是否有机会执行自定义代码?具体来说,我想将属性文件中的标记值替换为副本。因此,原始副本保持不变,但运行时中的版本具有给定开发人员所需的值。

最后,我知道这可以通过两个或三个步骤来完成蛮力,这些步骤在复制后会更改文件。我真的想知道是否有一种优雅的方法可以一步到位。

1 个答案:

答案 0 :(得分:3)

编译后,Gradle调用processResources任务,将资源复制到构建目录中。在复制资源时,processResources可以配置为进行过滤(或者可以通过添加doLast来执行自定义代码):

processResources {
    filter org.apache.tools.ant.filters.ReplaceTokens, tokens: [
      ...
    ]
}

这两个链接可以提供更多帮助: