Mac*_*icz 17 groovy jenkins-pipeline
我想在Jenkins管道作业中使用Switch语句.
def version = "1.2"
switch(GIT_BRANCH) {
case "develop":
result = "dev"
break
case ["master", "support/${version}"]:
result = "list"
break
case "support/${version}":
result = "sup"
break
default:
result = "def"
break
}
echo "${result}"
Run Code Online (Sandbox Code Playgroud)
当GIT_BRANCH
等于:
develop
- 返回值是dev
- 好的master
- 返回值是list
- 好的support/1.2
- 返回值是sup
- 为什么不list
呢?Dón*_*nal 28
我的猜测是,该类型GIT_BRANCH
是一个String
,而"support/${version}"
一个GString
.如果你将后者转换为String
它应该工作:
def version = "1.2"
switch(GIT_BRANCH) {
case "develop":
result = "dev"
break
case ["master", "support/${version}".toString()]:
result = "list"
break
case "support/${version}":
result = "sup"
break
default:
result = "def"
break
}
echo "${result}"
Run Code Online (Sandbox Code Playgroud)
两种字符串类型之间的差异在将它们相互比较时无关紧要,但它可能对其他类型的比较很重要,例如在您的代码中,您隐式地将a GString
与元素进行比较List
.
归档时间: |
|
查看次数: |
24292 次 |
最近记录: |