Jenkins pipeline 反序列化promotionConfig的变量

Jenkins pipeline 反序列化promotionConfig的变量,jenkins-pipeline,artifactory,Jenkins Pipeline,Artifactory,我试图将带有repo名称的变量(repoName)传递给参数targetRepo和sourceRepo,但在Jenkins中出现以下错误: 已通知生成结果 com.fasterxml.jackson.databind.JsonMappingException:无法从START\u对象标记中反序列化java.lang.String的实例 位于[来源:不适用;第1行,第1列](通过引用链:org.jfrog.hudson.pipeline.types.PromotionConfig[“targetR

我试图将带有repo名称的变量(repoName)传递给参数targetRepo和sourceRepo,但在Jenkins中出现以下错误:

已通知生成结果 com.fasterxml.jackson.databind.JsonMappingException:无法从START\u对象标记中反序列化java.lang.String的实例 位于[来源:不适用;第1行,第1列](通过引用链:org.jfrog.hudson.pipeline.types.PromotionConfig[“targetRepo”])

我正在promotionConfig中使用:

...
'targetRepo'         : '${repoName}-release-local',
...
'sourceRepo'         : '${repoName}-snapshot-local',
...
变量名

echo "Repo name is ${repoName}"
输出:回购名称为测试回购


有人知道将变量传递给promotionConfig的正确方法吗?

您应该使用双引号在字符串中传递变量

def var = "${repoName}".toString()
...
'targetRepo'         : "" + var + "-release-local",   
...
'sourceRepo'         : "" + var + "-snapshot-local",
...

这是行不通的。错误:com.fasterxml.jackson.databind.JsonMappingException:无法从[Source:N/A;line:-1,column:-1](通过引用链:org.jfrog.hudson.pipeline.types.PromotionConfig[“targetRepo”])处的START_对象标记中反序列化java.lang.String实例有趣的是,我让它这样工作:def rName=“${repoName}”.toString()“targetRepo”:“+rName+”-release local”,…“sourceRepo”:“+rName+”-release local”,看起来很奇怪。这是正确的吗?是的,看起来是正确的。repoName变量的类型是什么?这只是我从中得到的一个字符串:
token=“${env.JOB_NAME}”。tokenize('/')
repoName=token[0]