我在使用普通脚本的Jenkins构建管道中遇到问题。
这是我的常规脚本的一部分:
// Create a map out of our string
di.envVarString = "key1=value1|key2=value2"
def envVars = [:]
envVars = di.envVarString.tokenize("|").collectEntries {
it.split("=").with {
[ (it[0]): it[1]]
}
}
现在,这应该创建一个映射[key1:value1,key2:value2]
在Linux机器上运行此脚本,或在Web浏览器中使用在线groovy环境给了我预期的行为... 但是,由于某种原因,当在詹金斯管道中运行该groovy脚本时,它将地图分解成单个字符。
例如,我正在获得[k:e,k:e]作为地图。 到底是怎么回事?我对groovy不太熟悉,但是我认为我已经解决了问题。
答案 0 :(得分:0)
详细了解split与tokenize。 Split创建一个字符串,其中tokenize创建一个列表。 将内线从it.split(“ =”)更改为it.tokenize(“ =”)并有效。
发布此信息,以便其他所有人都知道。