XmlPullParserException выдается при попытке запустить сценарий groovy из задания Jenkins - PullRequest
0 голосов
/ 05 марта 2020

У меня есть два задания Jenkins, одно из которых называется "UpStreamJob" , а другое - его нижестоящее задание, называемое "GetUpstreamJob" .

. Восходящее задание настроено на начало работы вниз по течению как ее действие после постройки. Нижестоящее задание настраивается с параметром «execute groovy script» , который указывает на сценарий groovy, основная цель которого - получить имя задания верхнего уровня, которое его вызвало, и затем записать имя задания в файл свойств. (что мне еще предстоит реализовать).

Groovy скрипт:

@GrabResolver(name='jenkins', root='http://repo.jenkins-ci.org/public/')
@Grapes([
        @Grab(group='org.jenkins-ci.main', module='jenkins-core', version='2.167')
])

import hudson.model.*

def writeToPropertyFile(){

    def causes = Run.getCauses()

    for (cause in causes)
    {
        printCausesRecursively(cause)
    }
}


def printCausesRecursively(cause) {
     if (cause.class.toString().contains("UpstreamCause")) {
         println "This job was caused by " + cause.toString()
         for (upCause in cause.upstreamCauses) {
             printCausesRecursively(upCause)
         }
     } else {
         println "Root cause : " + cause.toString()
     }
}



writeToPropertyFile()

Ошибка в журнале консоли Jenkins:

Started by upstream project "UpStreamJob" build number 11
originally caused by:
 Started by user xyz
Running as SYSTEM
[EnvInject] - Loading node environment variables.
Building remotely on Server123 in workspace D:\Jenkins\workspace\GetUpstreamJob
[GetUpstreamJob] $ D:\Jenkins\tools\hudson.plugins.groovy.GroovyInstallation\Groovy-2-5-7\bin\groovy.bat D:\Asif\getUpstreamJob.groovy
Caught: java.lang.NoClassDefFoundError: org/xmlpull/v1/XmlPullParserException
java.lang.NoClassDefFoundError: org/xmlpull/v1/XmlPullParserException
    at hudson.util.XStream2.getDefaultDriver(XStream2.java:109)
    at hudson.util.XStream2.<init>(XStream2.java:113)
    at hudson.model.Run.<clinit>(Run.java:2471)
    at getUpstreamJob.writeToPropertyFile(getUpstreamJob.groovy:10)
    at getUpstreamJob.run(getUpstreamJob.groovy:32)
Caused by: java.lang.ClassNotFoundException: org.xmlpull.v1.XmlPullParserException
    ... 5 more
Build step 'Execute Groovy script' marked build as failure
Notifying upstream projects of job completion
Finished: FAILURE

РЕДАКТИРОВАТЬ 1 : START

Ниже приведена ошибка, отображаемая в журнале консоли Jenkins, когда я пытаюсь запустить сценарий, скопировав код сценария в «Выполнить сценарий Groovy сценарий» :

Started by upstream project "UpStreamJob" build number 15
originally caused by:
 Started by user Malick, Asif
Running as SYSTEM
[EnvInject] - Loading node environment variables.
Building remotely on SERVERNAMEXYZ123 in workspace D:\Jenkins\workspace\GetUpstreamJob
ERROR: Build step failed with exception
groovy.lang.MissingMethodException: No signature of method: java.lang.Class.getCauses() is applicable for argument types: () values: []
Possible solutions: getClasses(), getClass(), getName(), metaClass(groovy.lang.Closure), metaClass(groovy.lang.Closure), getFields()
    at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall(SandboxInterceptor.java:153)
    at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:158)
    at org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:162)
    at org.kohsuke.groovy.sandbox.impl.Checker$checkedCall.callStatic(Unknown Source)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallStatic(CallSiteArray.java:56)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callStatic(AbstractCallSite.java:194)
    at Script1.writeToPropertyFile(Script1.groovy:10)
    at Script1$writeToPropertyFile.call(Unknown Source)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
    at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:160)
    at org.kohsuke.groovy.sandbox.GroovyInterceptor.onMethodCall(GroovyInterceptor.java:23)
    at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall(SandboxInterceptor.java:157)
    at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:158)
    at org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:162)
    at org.kohsuke.groovy.sandbox.impl.Checker$checkedCall.callStatic(Unknown Source)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallStatic(CallSiteArray.java:56)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callStatic(AbstractCallSite.java:194)
    at Script1.run(Script1.groovy:32)
    at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.GroovySandbox.runScript(GroovySandbox.java:162)
    at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SecureGroovyScript.evaluate(SecureGroovyScript.java:368)
    at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SecureGroovyScript.evaluate(SecureGroovyScript.java:312)
    at hudson.plugins.groovy.SystemGroovy.run(SystemGroovy.java:95)
    at hudson.plugins.groovy.SystemGroovy.perform(SystemGroovy.java:59)
    at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
    at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:741)
    at hudson.model.Build$BuildExecution.build(Build.java:206)
    at hudson.model.Build$BuildExecution.doRun(Build.java:163)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:504)
    at hudson.model.Run.execute(Run.java:1853)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
    at hudson.model.ResourceController.execute(ResourceController.java:97)
    at hudson.model.Executor.run(Executor.java:427)
Build step 'Execute system Groovy script' marked build as failure
Notifying upstream projects of job completion
Finished: FAILURE

РЕДАКТИРОВАТЬ 2: КОНЕЦ

Пожалуйста, дайте мне знать, если я пропустил какие-либо детали. Часть лога c взята из inte rnet.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...