我有以下gradle构建
./的build.gradle
defaultTasks 'build'
task build(type: Copy){
// read the properties from the versions.properties file
Properties props = new Properties()
props.load(new FileInputStream("../versions.properties"))
props.each() { k, v ->
ant.properties[k] = v
}
// copy files and replace placeholders
from('ansible'){
filesMatching('**/*.ini') {
filter(org.apache.tools.ant.filters.ExpandProperties, project: ant.project)
}
filesMatching('**/*.yml') {
println it
filter(org.apache.tools.ant.filters.ExpandProperties, project: ant.project)
}
filesMatching('**/*.xml') {
println it
filter(org.apache.tools.ant.filters.ExpandProperties, project: ant.project)
}
}
into 'build/pkg/ansible'
includeEmptyDirs = true
}
我想替换所有" $ {variableName}"在./versions.properties中为所有* .xml,* .ini和* .yml文件中的变量定义的值,并将所有文件复制到新文件夹。
例如: ../ versions.properties
versionA=1.3
versionB=2.3
./ ansible /示例-file.yml
replace this version. => ${versionA}
./build/pkg/ansible/example-file.yml
中的预期输出replace this version. => 1.3
上述构建的结果是所有文件都被复制到正确的位置,但没有进行属性替换。 : - (
我的错误在哪里?
干杯, d。
答案 0 :(得分:0)
它实际上是按照已经过时的方式工作的。我错过了gradle的“复制”任务不会被覆盖为默认值。
如下指定任务,解决了我的问题:
task build(type: Copy, overwrite: true){
...
}
干杯, d。