2016-08-19 1 views
0

ich habe folgendes groovy Skript in einem jenkins bauenjenkins - java.io.IOException: Kann nicht laufen Programm "groovy"

def myFractureNO = ${FRACTURE_NO}; 
def myBuildNumber = ${BUILD_NUMBER}; 
def projectXml = new XmlSlurper().parseText("curl http://sparkbuilder.corp.adobe.com:8080/job/FractureAUT/api/xml".execute().text); 
projectXml.build.each { 
    if(it.number < myBuildNumber) 
    { 
     def jobXml = new XmlSlurper().parseText(("curl http://sparkbuilder.corp.adobe.com:8080/job/FractureAUT/" + it.number + "/api/xml").execute().text); 

     if(1) { 
     def myparams = jobXml.getAction(hudson.model.ParametersAction.class); 
     for(p in myparams) { 
      if (p.name.toString == "FRACTURE_NO") { 
       if (p.value.toString() == "$myFractureNO") { 
        println p.value.toString(); 
       } 
      } 
     } 
     } 
    } 
} 

Ich erhalte eine Fehlermeldung, dass

java.io.IOException: Cannot run program "groovy" 

wenn jenkins versucht, Führe dieses Skript auf einem Jenkins-Slave aus. Wie behebe ich das?

Jetzt bekomme ich folgende Fehlermeldung beim Versuch, das Skript als System Skript auszuführen

groovy.lang.MissingMethodException: No signature of method: Script1.$() is applicable for argument types: (Script1$_run_closure1) values [[email protected]] 
Possible solutions: is(java.lang.Object), run(), run(), any(), any(groovy.lang.Closure), use([Ljava.lang.Object;) 
at Script1.run(Script1.groovy:1) 
+0

Installieren Sie groovy auf dem Slave? –

+0

Was ist die Jenkins-Version? – Jayan

+0

jenkins version 2.18 – Jasmine

Antwort

1

Das folgende ist nicht gültig groovy:

def myFractureNO = ${FRACTURE_NO}; 
def myBuildNumber = ${BUILD_NUMBER}; 

Ich vermute, Sie versuchen zu Holen Sie einige Variablen aus der Umgebung. Siehe diese verwandte Frage: https://stackoverflow.com/a/26428580/172599