尝试在我的 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.