【发布时间】:2017-06-16 19:52:44
【问题描述】:
在运行我的 Java Groovy 脚本并更新到最新的 Groovy 管道时。感谢您的帮助。
我收到此错误,发生异常:在对象 org.jenkinsci.plugins.workflow.cps.CpsThreadGroup@3123aac2 对象中的字段线程中的字段程序中的字段 e 中的字段调用者的字段本地人中 导致:java.io.NotSerializableException: hudson.model.Run$Artifact 我认为有问题的代码是
stage('Retrieve Code') {
FileCacheCountCheck();
def job = jenkins.model.Jenkins.instance.getItem("pipeline.preview.build")
def build = job.getBuildByNumber(buildNumber)
def art = build.artifacts[0]
def file = art.file
def targetPath = pwd()
"rm -rf ${targetPath}/output".execute().text
"rm -rf ${targetPath}/script".execute().text
touch file: "${targetPath}/output/package.tmp"
"cp ${file} ${targetPath}/output/package.zip".execute().text
"cp -R ${targetPath}@script/ ${targetPath}/script/".execute().text
}
stage('Stash Package') {
def targetPath = pwd() stash 包括:'output/**',名称:'package'
根据这篇文章,https://github.com/jenkinsci/pipeline-plugin/blob/master/TUTORIAL.md#serializing-local-variables我尝试使用
@NonCPS
stage('Retrieve Code') {
FileCacheCountCheck();
@NonCPS
def job = jenkins.model.Jenkins.instance.getItem("pipeline.preview.build")
@NonCPS
def build = job.getBuildByNumber(buildNumber)
@NonCPS
def art = build.artifacts[0]
@NonCPS
def file = art.file
@NonCPS
def targetPath = pwd()
"rm -rf ${targetPath}/output".execute().text
"rm -rf ${targetPath}/script".execute().text
touch file: "${targetPath}/output/package.tmp"
"cp ${file} ${targetPath}/output/package.zip".execute().text
"cp -R ${targetPath}@script/ ${targetPath}/script/".execute().text
}
stage('Stash Package') {
@NonCPS
def targetPath = pwd()
stash includes: 'output/**', name: 'package'
}
这是整个堆栈跟踪 发生的异常:在字段调用者字段中的字段本地字段中字段程序中字段线程对象中 org.jenkinsci.plugins.workflow.cps.CpsThreadGroup@3123aac2 引起:java.io.NotSerializableException: org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:860) 处的 hudson.model.Run$Artifact。 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) 在 org.jboss.marshalling.river.RiverObjectOutputStream.writeObjectOverride(RiverObjectOutputStream.java:179) 在 java.util.HashMap.internalWriteEntries(Unknown Source) 在 java.io.ObjectOutputStream.writeObject(Unknown Source) 在 java.util。 HashMap.writeObject(Unknown Source) at sun.reflect.GeneratedMethodAccessor74.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.jboss。 marshalling.reflect.SerializableCla ss.callWriteObject(SerializableClass.java:271) at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:976) at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:854) at org .jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1032) 在 org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:988) 在 org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller .java:854) 在 org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:988) 在 org.jboss.marshalling.doWriteFields(RiverMarshaller.java:1032) 在 org.jboss.marshalling。 river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:967) at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:854) at org.jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1032)在 org.jboss.marshalling.river.R iverMarshaller.doWriteSerializableObject(RiverMarshaller.java:988) at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:967) at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:854) at org .jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1032) 在 org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:988) 在 org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller .java:854) 在 org.jboss.marshalling.river.BlockMarshaller.doWriteObject(BlockMarshaller.java:65) 在 org.jboss.marshalling.river.BlockMarshaller.writeObject(BlockMarshaller.java:56) 在 org.jboss.marshalling。 MarshallerObjectOutputStream.writeObjectOverride(MarshallerObjectOutputStream.java:50) at org.jboss.marshalling.river.RiverObjectOutputStream.writeObjectOverride(RiverObjectOutputStream.java:179) at java.io.ObjectOutputStream.writeObject(Unknown Source) at java.util.TreeMap.wri teObject(Unknown Source) at sun.reflect.GeneratedMethodAccessor272.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.jboss.marshalling。 reflect.SerializableClass.callWriteObject(SerializableClass.java:271) at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:976) at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:854)在 org.jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1032) 在 org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:988) 在 org.jboss.marshalling.river.RiverMarshaller.doWriteObject (RiverMarshaller.java:854) 在 org.jboss.marshalling.AbstractMarshaller.writeObject(AbstractMarshaller.java:111) 在 org.jboss.marshalling.AbstractObjectOutput.writeObject(AbstractObjectOutput.java:58) 在 org.jenkinsci.plugins.workflow。 support.pickles.serialization。 RiverWriter.writeObject(RiverWriter.java:140) at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.saveProgram(CpsThreadGroup.java:458) at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.saveProgram(CpsThreadGroup.java: 434)在 org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.run(CpsThreadGroup.java:362)在 org.jenkinsci.plugins .workflow.cps.CpsThreadGroup.access$100(CpsThreadGroup.java:82) at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:242) at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup $2.call(CpsThreadGroup.java:230) at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$2.call(CpsVmExecutorService.java:64) at java.util.concurrent.FutureTask.run(Unknown Source) at hudson.remoting .SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:112) 在 jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28) t java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent .ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Finished: FAILURE
【问题讨论】:
标签: jenkins groovy jenkins-pipeline