gradle-替换XML文件中的文本

gradle-替换XML文件中的文本,gradle,build.gradle,Gradle,Build.gradle,我想替换XML中的一些关键字(变量类型)。我们正在将Ant build迁移到Gradle。其中一个文件是XML,它包含一些关键字,比如${FILE\u ID}、${GROUP\u ID}。我需要读取这个XML文件,并用实际值替换这些关键字 def dest = file("pom/module-pom.xml") def text = new File('pom/dependencies.pom').text text = text.replaceAll("${GROUP_ID}", "${gr

我想替换XML中的一些关键字(变量类型)。我们正在将Ant build迁移到Gradle。其中一个文件是XML,它包含一些关键字,比如${FILE\u ID}、${GROUP\u ID}。我需要读取这个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把它当作一根弦

谢谢。

引用自:

如果我们使用双引号字符串,并且它包含一个具有${expression}语法的Groovy表达式,那么我们就有一个GString

如上链接所述,有几种方法可以声明简单的
字符串
,而不是
GString
,例如简单地使用单引号。另外,请注意,您的问题是由Groovy特性而不是Gradle特性引起的。因此,
${expression}
语法不仅适用于Gradle(project)属性,而且适用于任何Groovy表达式。

引用自:

如果我们使用双引号字符串,并且它包含一个具有${expression}语法的Groovy表达式,那么我们就有一个GString


如上链接所述,有几种方法可以声明简单的
字符串
,而不是
GString
,例如简单地使用单引号。另外,请注意,您的问题是由Groovy特性而不是Gradle特性引起的。因此,
${expression}
语法不仅适用于Gradle(project)属性,而且适用于任何Groovy表达式。

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


text.replaceAll('${GROUP\u ID}',groupId)

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

text.replaceAll('${GROUP\u ID}',groupId)