如何在一个文件中展开占位符而不在第二个文件中展开

时间:2015-11-12 22:23:01

标签: gradle

我有两个资源文件。对于'x.properties',我想要评估占位符,我希望保持'please-not-modify.properties'不变

的build.gradle

processResources {
  include "**/x.properties"
  filter(ReplaceTokens, tokens: [abc: 'ABC', version: '2.3.1'])
} 

processResources {
  include "**/please-not-modify.properties"
}

不幸的是,这两个文件都评估了占位符......

PS。你猜对了,我是Maven老手:)。

1 个答案:

答案 0 :(得分:0)

如果必须仅在资源的单个文件中使用占位符,则应尝试将过滤器仅应用于资源中的文件子集,例如:

processResources {
    filesMatching('**/x.properties') {
        filter ReplaceTokens, tokens: [
            abc: 'ABC', version: '2.3.1'
        ]
    }
}

这里使用了ProcessResources任务的filesMatching方法,其中:

  

为路径与指定的Ant样式模式匹配的每个文件配置FileCopyDetails。

因此,有了它,就可以只为这个任务中包含的文件子集提供额外的处理。