无法替换Groovy脚本中的字符串文本

无法替换Groovy脚本中的字符串文本,groovy,jenkins-groovy,Groovy,Jenkins Groovy,我试图用groovy脚本替换pom.xml中的测试。这是我的两种方法。应该替换的文本是{env.AM_$environment.toUpperCase()\u SERVER\u CREDS\u USR} 方法一 File mainPomXml = new File(rootDir,'/pom.xml') mainPomXml.text.replace('{env.AM_$environment.toUpperCase()_SERVER_CREDS_USR}','${env.AM_$environ

我试图用groovy脚本替换
pom.xml
中的测试。这是我的两种方法。应该替换的文本是
{env.AM_$environment.toUpperCase()\u SERVER\u CREDS\u USR}

方法一

File mainPomXml = new File(rootDir,'/pom.xml')
mainPomXml.text.replace('{env.AM_$environment.toUpperCase()_SERVER_CREDS_USR}','${env.AM_$environment.toUpperCase()_SERVER_CREDS_USR}');
方法二

def mainPomXml = new File(rootDir,'/pom.xml')
def mainPom = mainPomXml.text.replace('{env.AM_$environment.toUpperCase()_SERVER_CREDS_USR}','${env.AM_$environment.toUpperCase()_SERVER_CREDS_USR}');
mainPomXml.write(mainPom);

但这些方法都不起作用。这意味着两者都执行,但测试不会被替换。如何解决此问题?

如下更改mainPom部件

def mainPomXml = new File(rootDir, '/pom.xml')
def mainPom = mainPomXml.text.replace('AM_SERVER_CREDS_USR', '${env.AM_'+ env.toUpperCase() +'_SERVER_CREDS_USR}')
mainPomXml.write(mainPom)

方法1不起作用-它基本上是一个不可操作的方法。将其理解为
mainPomXml.getText()。替换…
;第二种方法应该有效。请更具体地说明什么不起作用。它不会取代文本。即使在执行脚本之后,它仍然是相同的。