Не удалось запустить GPARS groovy из общей библиотеки в Дженкинсе

#jenkins #groovy #jenkins-pipeline #shared-libraries #jenkins-groovy

Вопрос:

У меня есть конвейер Дженкинса, который использует общую библиотеку, в которой скрипт groovy выполняет некоторую обработку. Я хочу использовать Gpars в этом сценарии, но когда я импортирую его как:

 import static groovyx.gpars.GParsPool.*
 

Я получаю ошибку ниже:

 in field org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.closures
    in object org.jenkinsci.plugins.workflow.cps.CpsThreadGroup@1ff69f0
    in object org.jenkinsci.plugins.workflow.cps.CpsThreadGroup@1ff69f0
Caused: java.io.NotSerializableException: org.codehaus.groovy.control.ErrorCollector
    at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:860)
    at org.jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1032)
    at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:988)
    at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:854)
    at org.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)
    at org.jboss.marshalling.river.RiverObjectOutputStream.writeObjectOverride(RiverObjectOutputStream.java:179)
    at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:344)
    at java.util.HashMap.internalWriteEntries(HashMap.java:1793)
    at java.util.HashMap.writeObject(HashMap.java:1363)
    at sun.reflect.GeneratedMethodAccessor56.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.jboss.marshalling.reflect.SerializableClass.callWriteObject(SerializableClass.java:273)
    at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:976)

    at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshal
 

Если я удалю этот статический импорт, мой код будет работать нормально, но он будет последовательным, и чтобы сделать его параллельным, я хочу использовать Gpars, но я не могу импортировать. Это проблема из-за статического импорта?

ОБНОВЛЕНИЕ: Если я запускаю из Дженкинса/скрипта, я получаю следующую ошибку:

 org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
Script1.groovy: 2: unable to resolve class groovyx.gpars.GParsPool