2014-01-16 48 views
3
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文件,取消注释/替换文本时,建设一个特定的风味。如果我将文件复制到不同的目录中,这种方法可行,但我想放置文件并将其与替换的文本放在同一目录中。上面的代码只会删除文件的全部内容。Gradle复制替换文本并放入相同的文件夹

+0

也许,您可以尝试先将其复制到临时位置,然后再次复制到原始位置? – akhikhl

+1

大声笑,实际上会工作。应该想到这一点,但我想我正在考虑这样做的有效方法。我仍然开放其他选项,但到目前为止,上述建议将起作用。 – user3179245

回答

0

我是相当新的摇篮,所以我不知道这是最好的方式,但我有我的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") 
} 

它似乎运作良好只要它在我每次构建时都可以发生。

相关问题