Groovy Jenkinsfile方法中无法识别的参数

Groovy Jenkinsfile方法中无法识别的参数,groovy,jenkins-pipeline,jenkins-groovy,Groovy,Jenkins Pipeline,Jenkins Groovy,我正在执行一个方法调用: notifyGerrit('Success') 方法定义是 def notifyGerrit(String msg) { sh ''' ssh -i ${JENKINS_PUB_KEY} -o UserKnownHostsFile=/dev/null \ -p 12345 gerrit.abc.com gerrit review \ ${GERRIT_CHANGE_NUMBER},${GE

我正在执行一个方法调用:

notifyGerrit('Success')
方法定义是

def notifyGerrit(String msg) { 
    sh ''' 
       ssh -i ${JENKINS_PUB_KEY} -o UserKnownHostsFile=/dev/null \ 
           -p 12345 gerrit.abc.com gerrit review \ 
              ${GERRIT_CHANGE_NUMBER},${GERRIT_PATCHSET_NUMBER} \ 
           --label ${msg} \ -m "'Successful: ${BUILD_URL}'" 
      ''' 
}

执行此操作时,
--label
获取空值

+ ssh -i **** -o UserKnownHostsFile=/dev/null -p 12345 gerrit.abc.com gerrit review 4134,1 --label -m ''\'' Successful: https://abc.gerrit.com/'\''' fatal: Label vote missing '=': -m

我试着用
{msg}
msg
$msg
${msg}

但这些都不管用。如何在代码块中获取参数msg的值。请注意,来自环境的其他变量(如
${BUILD_URL}
等)也可以工作。

如果要使用字符串插入
$msg
变量,则需要使用双引号而不是单引号。大概是这样的:

def notifyGerrit(String msg) { 
    sh """ 
       ssh -i ${JENKINS_PUB_KEY} -o UserKnownHostsFile=/dev/null \ 
           -p 12345 gerrit.abc.com gerrit review \ 
              ${GERRIT_CHANGE_NUMBER},${GERRIT_PATCHSET_NUMBER} \ 
           --label ${msg} \ 
           -m \\"'Successful: ${BUILD_URL}'\\" 
      """ 
}

如果要使用字符串插入
$msg
变量,则需要使用双引号而不是单引号。大概是这样的:

def notifyGerrit(String msg) { 
    sh """ 
       ssh -i ${JENKINS_PUB_KEY} -o UserKnownHostsFile=/dev/null \ 
           -p 12345 gerrit.abc.com gerrit review \ 
              ${GERRIT_CHANGE_NUMBER},${GERRIT_PATCHSET_NUMBER} \ 
           --label ${msg} \ 
           -m \\"'Successful: ${BUILD_URL}'\\" 
      """ 
}