2017-05-31 82 views
0

我想替换XML中的一些关键字(变量类型)。我们正在将Ant构建迁移到Gradle。其中一个文件是XML,其中包含一些关键字,如$ {FILE_ID},$ {GROUP_ID}。我需要阅读这个XML文件并用实际值替换这些关键字。gradle - 替换XML文件中的文本

def dest = file("pom/module-pom.xml") 
def text = new File('pom/dependencies.pom').text 
text = text.replaceAll("${GROUP_ID}", "${groupId}") 
dest.write(text, "UTF-8") 

问题是,Gradle将'$ {GROUP_ID}'识别为gradle属性。有没有办法让Gradle把它当作一个字符串?

谢谢。

回答

0

报价从Mr. Hakis Blog

如果我们使用双引号的字符串,它包含了与$ {}表达式语法,我们有一个GString的一个Groovy的表达。

作为上述的链路状态,有几种方式来声明一个简单String代替GString,例如简单地使用单引号。另外,请注意,您的问题是由Groovy功能而不是由Gradle功能引起的。因此,${expression}语法不仅适用于Gradle(项目)属性,而且适用于任何Groovy表达式。

0

最简单的解决方案是在不希望发生替换的地方使用单引号。例如:

text.replaceAll('${GROUP_ID}', groupId)