pipeline 序列化問解決題

pipeline 循環不可序列化參數 如map的解決方法java

problem:node

java.io.NotSerializableException: java.util.LinkedHashMap$Entry

solution:code

node {
    ....
    for (it2 in mapToList(depmap)) {
        name = it2[0]
        revision = it2[1]
    }
}
@NonCPS
def mapToList(depmap) {
    def dlist = []
    for (entry in depmap) {
        dlist.add([entry.key, entry.value])
    }
    dlist
}

use unserializable type like map etc. in each() iteration or for() iteration would cause the problemip

map.each{ k, v -> println "${k}:${v}" }
map.each { k, v -> println "$k := $v" }

其餘參考:jenkins

@NonCPS
def mapToList(depmap) {
    def dlist = []
    for (def entry2 in depmap) {
        dlist.add(new java.util.AbstractMap.SimpleImmutableEntry(entry2.key, entry2.value))
    }
    dlist
}
----
for (def e in mapToList(map))
{
    println "key = ${e.key}, value = ${e.value}"
}

http://stackoverflow.com/questions/40159258/impossibility-to-iterate-over-a-map-using-groovy-within-jenkins-pipeline
相關文章
相關標籤/搜索