Gradle复制文件并仅展开其中一些文件和/或忽略其他文件中的美元符号

mm2*_*001 6 gradle

我有一个文件树,我想用Gradle复制,对于一些文件(例如以.txt结尾),我想做一些属性替换.例如,我有:

task "copyAndroidAssets$flavor" (type: Copy, 
   dependsOn: ["cleanAndroidAssets", "copyAndroidRes$flavor"] ) {
   from "build/assets/${flavorLc}/release/"
   into '../android/assets'
   expand ( versionName: myVersionName, versionCode: myVersionCode )
}
Run Code Online (Sandbox Code Playgroud)

问题是正在复制的树中的某些文件中包含与属性扩展无关的美元符号($),这会产生错误SimpleTemplateScript6.groovy: 1: illegal string body character after dollar sign;.

在我的特定场景中,除了一个文件之外的所有文件都可以简单地按原样复制.只需要一个文件,就about.txt需要替换值.有关简单方法的任何建议吗?

小智 7

现在(Gradle 2.3.1)有一个更好的解决方案:https://issues.gradle.org/browse/GRADLE-1566

processResources {
    inputs.property('version', version)
    filesMatching("**/version.properties") {
        expand version: version
    } }
Run Code Online (Sandbox Code Playgroud)

在我的情况下,我希望仅在yaml文件中扩展项目属性:

processResources {
    filesMatching("**/*.yaml") {
        expand project.properties
    }
}
Run Code Online (Sandbox Code Playgroud)