Jenkins管道捕获到异常:java.io.NotSerializableException:java.util.ArrayList $ Itr

时间:2020-09-25 04:41:37

标签: java jenkins groovy jenkins-pipeline

我对groovy和管道的使用经验很少,我试图从groovy编写的旧DSL流插件中迁移代码,以使用管道。进行一些细微的更改后,除了尝试触发Jenkins作业时,我似乎可以理解大多数代码。代码有点长,所以我只捕获我认为有问题的部分。基于Serializing Local VariablesPipeline CPS Method Mismatches,我认为这与在方法中使用经过CPS转换的代码(例如“构建作业”)有关。我认为这是不允许的。但是我不确定如何将这些值从常规方法传递到管道阶段/步骤。当它到达“ build job:”行时,我将收到NotSerializableExceptin消息。感谢任何帮助或指点-谢谢!

@NonCPS
def func1 = { param1, param2, param3, param4 ->
try {     
    build job: jobName, parameters: [string(name: 'PARAM1', value: param1), string(name: 'PARAM2', value: param2), string(name: 'PARAM3', value: param3), string(name: 'PARAM4', value: param4)]
} catch (Exception e) {
    println "Caught exception:" + e
}

node {
....
    func1 (param1, param2, param3, param4)
....

}

1 个答案:

答案 0 :(得分:0)

您是否尝试对这些功能使用@NonCPS注释?看起来可以解决您的问题

相关问题