java.io.NotSerializableException:hudson.model.FreeStyleProject

Svi*_*ana 9 groovy jenkins jenkins-pipeline

我正在尝试在Jenkins中执行管道脚本.这是我的脚本:

import com.cloudbees.groovy.cps.NonCPS
@NonCPS
def getJobVariable(jobName,varName){ 
    job = Jenkins.instance.getItemByFullName(jobName)
        newJob = job.getLastBuild()
    return newJob.getEnvVars().get(varName,null)
}




node{
    stage 'props'

    api = build job: 'Props'
    buildID =  api.getNumber()
    build job: 'Parameterized', parameters: [[$class: 'StringParameterValue', name: 'string_parameter', value: getJobVariable('Props','filename')]];

}
Run Code Online (Sandbox Code Playgroud)

但我经常得到NotSerializableException.我猜,我的getJobVariable方法有问题.请帮忙

Alg*_*rys 12

我做了一些测试,因为我在管道工作中遇到了同样的问题(对于Matrix).

解决的办法是把def之前job或对象(这里的名字Job你的声明之前).

NotSerializableException消失.

如果这不能解决您的问题,您还可以@NonCPS在声明之前添加标志.请参阅官方文档:serializing-local-variables.