Jenkins管道中的Groovy映射切断字符

时间:2018-10-30 21:08:12

标签: dictionary

我在使用普通脚本的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不太熟悉,但是我认为我已经解决了问题。

1 个答案:

答案 0 :(得分:0)

详细了解split与tokenize。 Split创建一个字符串,其中tokenize创建一个列表。 将内线从it.split(“ =”)更改为it.tokenize(“ =”)并有效。

发布此信息,以便其他所有人都知道。