[英]Not serializable error for jenkins declarative pipeline
我试图从我的管道中触发我的电子邮件推广工作,该管道从Jenkins
消息中提取回购名称。 但是无法解决此块的SerializableException
错误。 任何帮助是极大的赞赏。
post{
success{
script{
@NonCPS
//upstream_job_name = null
def manager = manager.getLogMatcher('.*Obtained Jenkinsfile from git (.*)$')
if(manager.matches()){
def gitMsg=manager.group(1)
gitrepo = "${gitMsg}"
echo gitrepo
def upstream_job_name = gitrepo.split("/")[4].replace(".git", "")
println upstream_job_name
}
build job: 'job-approval' , parameters: [[$class: 'StringParameterValue', name: 'upstream_job_name', value: upstream_job_name]]
}
}
}
以下是我收到的错误消息:
[管道] //脚本执行成功发布条件时出错:
java.io.NotSerializableException:org.jboss.marshalling.river.BlockMarshaller.doWriteObject(BlockMars65)上的org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:926) )在org.jboss.marshalling.Marshalling.river.BlockMarshaller.java:56在org.jboss.marshalling.MarshallerObjectOutputStream.writeObjectOverride(MarshallerObjectOutputStream.java:50)在org.jboss.marshalling。 RiverObjectOutputStream.java:179)
使用后,您需要立即释放manager
。 更多细节可以在这篇文章中找到
script{
//upstream_job_name = null
def manager = manager.getLogMatcher('.*Obtained Jenkinsfile from git (.*)$')
if(manager.matches()){
def gitMsg=manager.group(1)
gitrepo = "${gitMsg}"
echo gitrepo
def upstream_job_name = gitrepo.split("/")[4].replace(".git", "")
println upstream_job_name
}
manager = null
build job: 'job-approval' ,
parameters: [
[$class: 'StringParameterValue', name: 'upstream_job_name', value: upstream_job_name]
]
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.