Gradle copy替换文本并放入同一文件夹

时间:2014-01-16 21:14:37

标签: android gradle

copy{
            from('res/values'){
                include 'myfile.xml'
            }
            into 'res/values'

            filter{
                String line -> line.replaceAll("<!--<string name=\"test\">test</string>-->", "<string name=\"id\">test</string>")
            }
        }

我有以下内容,它采用xml文件,并在构建特定的flavor时取消注释/替换文本。如果我将文件复制到另一个目录但是我想放置文件并将其放在与替换文本相同的目录中,则此方法有效。上面的代码只会删除文件的整个内容。

1 个答案:

答案 0 :(得分:0)

我对Gradle相当新,所以我不确定这是不是最好的方法,但我在我的Windows机器上有一些任务,如下所示:

task update_project << {
    def proj = file("$someProjectFile")
    def text = proj.getText("UTF-8")
    def replacement = "2"
    text = text.replaceAll("  something = 1;", "  something = ${replacement};")
    proj.write(text, "UTF-8")
}

只要每次构建都可以发生,它似乎运行良好。