对于一组开发人员,所有差异都存储在普通属性文件中:
token1=some value
token2=9000
etc.
'令牌'用于一系列XML文件,这些文件位于普通的src / main / resources目录中。当Gradle将这些文件复制到构建目录中时(我不确定是什么任务),是否有机会执行自定义代码?具体来说,我想将属性文件中的标记值替换为副本。因此,原始副本保持不变,但运行时中的版本具有给定开发人员所需的值。
最后,我知道这可以通过两个或三个步骤来完成蛮力,这些步骤在复制后会更改文件。我真的想知道是否有一种优雅的方法可以一步到位。
答案 0 :(得分:3)
编译后,Gradle调用processResources
任务,将资源复制到构建目录中。在复制资源时,processResources
可以配置为进行过滤(或者可以通过添加doLast
来执行自定义代码):
processResources {
filter org.apache.tools.ant.filters.ReplaceTokens, tokens: [
...
]
}
这两个链接可以提供更多帮助: