尝试在我的 gradle 构建中的 filesMatching 中扩展属性
Try to ExpandProperties in filesMatching in my gradle build
我有以下 gradle build
./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
}
我想用 ../versions.properties 中为所有 *.xml、*.ini 和 *.yml 中的该变量定义的值替换所有“${variableName}”文件并将所有文件复制到新文件夹。
例如:
../versions.properties
versionA=1.3
versionB=2.3
./ansible/example-file.yml
replace this version. => ${versionA}
./build/pkg/ansible/example-file.yml
中的预期输出
replace this version. => 1.3
上述构建的结果是所有文件都被复制到正确的位置,但没有进行 属性 替换。 :-(
我的错误在哪里?
干杯,
d.
它确实按预期工作。我错过了 gradle 的 "copy" 任务默认不会覆盖。
指定任务如下,解决了我的问题:
task build(type: Copy, overwrite: true){
...
}
干杯,
d.
我有以下 gradle build
./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
}
我想用 ../versions.properties 中为所有 *.xml、*.ini 和 *.yml 中的该变量定义的值替换所有“${variableName}”文件并将所有文件复制到新文件夹。
例如: ../versions.properties
versionA=1.3
versionB=2.3
./ansible/example-file.yml
replace this version. => ${versionA}
./build/pkg/ansible/example-file.yml
中的预期输出replace this version. => 1.3
上述构建的结果是所有文件都被复制到正确的位置,但没有进行 属性 替换。 :-(
我的错误在哪里?
干杯, d.
它确实按预期工作。我错过了 gradle 的 "copy" 任务默认不会覆盖。
指定任务如下,解决了我的问题:
task build(type: Copy, overwrite: true){
...
}
干杯, d.