簡體   English   中英

在jenkinsfile的sh命令中使用$ {variable}

[英]Use a ${variable} in a sh command in a jenkinsfile

我正在嘗試在Jenkinsfile中使用此Maven命令

mvn -q -Dexec.executable=echo -Dexec.args='${project.version}' --non-recursive exec:exec

我將此命令放在jenkinsfile中的變量中,以稍后以這種方式使用

def myCommand = 'mvn -q -Dexec.executable=echo -Dexec.args=\"${project.version}\" --non-recursive exec:exec'

...

def version = sh(${myCommand})

我的問題是Jenkins無法正確轉義我的'$ {project.version}'並輸出java.lang.NoSuchMethodError: No such DSL method '$' found among steps

如何在命令變量中正確包含'$ {project.version}'作為字符串?

Groovy中的單引號存在一個問題-它不能替代變量。 這應該工作:

def myCommand = "mvn -q -Dexec.executable=echo -Dexec.args='${project.version}' --non-recursive exec:exec"

有關引號的更多信息: groovy中單引號或雙引號內的字符串有什么區別?

只需將單引號替換為雙引號即可:

def myCommand = "mvn -q -Dexec.executable=echo -Dexec.args=\"${project.version}\" --non-recursive exec:exec"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM