2016-08-19 62 views
0

我已經在詹金斯以下Groovy腳本建立詹金斯 - 產生java.io.IOException:不能運行程序「常規」

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(); 
       } 
      } 
     } 
     } 
    } 
} 

我得到一個錯誤說

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

當詹金斯嘗試在詹金斯奴隸上運行這個腳本。我該如何解決?

現在試圖執行腳本作爲一個系統腳本

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

在從站上安裝groovy? –

+0

詹金斯版本是什麼? – Jayan

+0

詹金斯版本2.18 – Jasmine

回答

1

下,當我碰到下面的錯誤不是有效的常規:

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

我猜你想從環境中獲取一些變量。看到這個相關的問題:https://stackoverflow.com/a/26428580/172599