小编jug*_*gao的帖子

Jenkins Pipeline:遍历地图时如何使用 sh 模块?

我的詹金斯管道内容是:

pipeline {
    agent any
    stages {
        stage('Example Build') {
            steps {
                script {
                    repos = [
                        'a': '1',
                        'b': '2',
                        'c': '3']
                    for (i in repos) {
                        echo "${i.key}, ${i.value}"
                        sh "echo test"
                    }
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我在构建时遇到错误:

Caused: java.io.NotSerializableException: java.util.LinkedHashMap$Entry
    at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:926)
    at org.jboss.marshalling.river.BlockMarshaller.doWriteObject(BlockMarshaller.java:65)
    at org.jboss.marshalling.river.BlockMarshaller.writeObject(BlockMarshaller.java:56)
    at org.jboss.marshalling.MarshallerObjectOutputStream.writeObjectOverride(MarshallerObjectOutputStream.java:50)
    at org.jboss.marshalling.river.RiverObjectOutputStream.writeObjectOverride(RiverObjectOutputStream.java:179)
    at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:344)
    at java.util.HashMap.internalWriteEntries(HashMap.java:1793)
    at java.util.HashMap.writeObject(HashMap.java:1363)
    at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.jboss.marshalling.reflect.JDKSpecific$SerMethods.callWriteObject(JDKSpecific.java:156)
    at org.jboss.marshalling.reflect.SerializableClass.callWriteObject(SerializableClass.java:191)
...
Finished: FAILURE
Run Code Online (Sandbox Code Playgroud)

如果 repos 已列出,则运行正常。

我无法修复该错误,希望有人可以回答。

谢谢您的回答。

groovy jenkins jenkins-pipeline

3
推荐指数
1
解决办法
3744
查看次数

标签 统计

groovy ×1

jenkins ×1

jenkins-pipeline ×1