Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
外部groovy脚本给出错误:groovy.lang.MissingPropertyException:没有这样的属性:hudson。在Jenkins中使用时_Groovy_Jenkins_Jenkins Plugins - Fatal编程技术网

外部groovy脚本给出错误:groovy.lang.MissingPropertyException:没有这样的属性:hudson。在Jenkins中使用时

外部groovy脚本给出错误:groovy.lang.MissingPropertyException:没有这样的属性:hudson。在Jenkins中使用时,groovy,jenkins,jenkins-plugins,Groovy,Jenkins,Jenkins Plugins,我目前正在Jenkins中使用“执行系统groovy脚本”。我在Jenkins的编辑器框中编写了以下代码 import hudson.model.* import groovy.json.JsonBuilder import groovy.json.JsonSlurper // Get the list of all jobs and print them activeJobs = hudson.model.Hudson.instance.items.findAll{job -> jo

我目前正在Jenkins中使用“执行系统groovy脚本”。我在Jenkins的编辑器框中编写了以下代码

import hudson.model.*
import groovy.json.JsonBuilder
import groovy.json.JsonSlurper


// Get the list of all jobs and print them
activeJobs = hudson.model.Hudson.instance.items.findAll{job -> job.isBuildable()}

//activeJobs.each{run -> println(run.name)}
println  ('total number of jobs :'+ activeJobs.size())

// find failed runs
failedRuns = activeJobs.findAll{job -> job.lastBuild != null && job.lastBuild.result == hudson.model.Result.FAILURE}
//failedRuns.each{run -> println(run.name)}
println  ('total number of jobs :'+ failedRuns.size())


// find successful runs
successfulRuns = activeJobs.findAll{job -> job.lastBuild != null && job.lastBuild.result == hudson.model.Result.SUCCESS}
//successfulRuns.each{run -> println(run.name)}
println  ('total number of jobs :'+ successfulRuns.size())


//get current date
Date date = new Date(System.currentTimeMillis())
String formattedDate = date.format('yyyy.MM.dd')


//writing to JSON Object
def directory = "D:\\Programs\\Jenkins\\jobs\\Groovy-Project\\workspace\\History\\"
def fileName = "build_job_data"
def extension = ".csv"
def filePath = directory+fileName+extension

File file = new File(filePath)

//check if the file exists
if(!file.exists()){
    println("File doesn't exists. Creating the file ..");
}
else{
    println("File already exists");
    //reading the file
    String fileContents = new File(filePath).text

  int flag = 0;
  if(fileContents.contains(formattedDate)){
    println("Already deployed today at least once! Deleting old values and writing the new one..")
    flag = 1;
  }

  def result = []
  String textToWrite = "";
  int count = 0;
  result = fileContents.split('\n')

  if(flag==1){
      for(int i = 0; i<result.size();i++){
        if(result[i].contains(formattedDate)){
            println(result[i])
        }
        else{
            textToWrite = textToWrite + '\n' + result[i]
        }
    }
  }
  else
  {
    for(int i = 0; i<result.size();i++){
        textToWrite = textToWrite+ '\n' + result[i]
    }
  }

  //make a backup of old record

  def newFile = directory+fileName+"_bkp_"+new Date(System.currentTimeMillis()).format('yyyy-MM-dd_hh_mm_ss') + extension
  println("creating back up file At :: " + newFile)
  File bkpfile = new File(newFile)
  bkpfile<<fileContents
  println("file creation done")

  //update the current history file
  file.delete()
  file = new File(filePath)
  file<<textToWrite
  file<<'\n'
}



def newDataToAdd = formattedDate+","+activeJobs.size()+","+failedRuns.size()+","+successfulRuns.size()+"\r\n"


file<<newDataToAdd

println('print done')
有人能指出这个错误的原因吗


谢谢

我解决了这个问题。我错误地试图将其作为groovy脚本执行,但我应该使用执行系统groovy脚本。
现在运行良好

Caught: groovy.lang.MissingPropertyException: No such property: hudson for class: TestClass
groovy.lang.MissingPropertyException: No such property: hudson for class: TestClass
    at TestClass.run(TestClass.groovy:7)
Build step 'Execute Groovy script' marked build as failure