2016-09-08 4 views
0

ich habe die folgende Funktion in einem Workflow-Skript, das in dem Fehler führt java.io.NotSerializableException: groovy.json.internal.LazyMapJenkins Workflow-java.io.NotSerializableException: groovy.json.internal.LazyMap in Closure

def getParentTagForCurrentBranch(appWorkspace) { 

    def parentTag = null 

    dir("${appWorkspace.getPath()}") { 

     parentTag = bat(script:"git describe --abbrev=0 --tags", returnStdout:true) 
    } 

    return parentTag 
} 

Was ich nicht verstehe, über den Fehler ist, wo ich eine LazyMap verwende?

Ich habe einige verschiedene Variationen dieses Blocks ausprobiert, aber alle führen zu dem Fehler, ich habe es auch mit @NonCPS versucht, aber das führt nur dazu, dass die ganze Methode übersprungen wird.

Kann mir jemand helfen zu verstehen, warum dies den Fehler verursacht und wie man es löst?

+1

Sind Sie sicher, dass Sie nicht JSON Parsen sind an anderer Stelle im Workflow? –

+0

Wenn Sie herausfinden können, wo das JSON-Parsing stattfindet, kann diese Antwort auf eine andere Frage hilfreich sein: http://stackoverflow.com/a/38439681/4142522. Ich habe herausgefunden, dass dies der einfachste Weg ist, die Mängel des Standard-JsonSlurper zu umgehen, ohne neue Abhängigkeiten hinzuzufügen. – BalRog

Antwort