首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在jenkinsfile的sh命令中使用${variable}

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

Stack Overflow用户
提问于 2019-03-15 21:12:33
回答 2查看 1.5K关注 0票数 1

我正尝试在Jenkinsfile中使用这个maven命令

代码语言:javascript
复制
mvn -q -Dexec.executable=echo -Dexec.args='${project.version}' --non-recursive exec:exec

我将这个命令放在jenkinsfile的一个变量中,以便以后以这种方式使用它

代码语言:javascript
复制
def myCommand = 'mvn -q -Dexec.executable=echo -Dexec.args=\"${project.version}\" --non-recursive exec:exec'

..。

代码语言:javascript
复制
def version = sh(${myCommand})

我的问题是Jenkins不能正确地转义我的'${project.version}‘并输出java.lang.NoSuchMethodError: No such DSL method '$' found among steps

如何正确地将'${project.version}‘作为字符串包含在我的命令变量中?

EN

回答 2

Stack Overflow用户

发布于 2019-03-15 21:35:12

groovy中的单引号有一个问题-它不能替换变量。这应该是可行的:

代码语言:javascript
复制
def myCommand = "mvn -q -Dexec.executable=echo -Dexec.args='${project.version}' --non-recursive exec:exec"

更多引用:What's the difference of strings within single or double quotes in groovy?

票数 0
EN

Stack Overflow用户

发布于 2019-03-15 23:00:45

只需将单引号替换为双引号:

代码语言:javascript
复制
def myCommand = "mvn -q -Dexec.executable=echo -Dexec.args=\"${project.version}\" --non-recursive exec:exec"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55183432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档