Unable to resolve class com.cloudbees.hudson.plugins.folder.Folder

旧时模样 提交于 2020-01-14 01:39:28

问题


I am trying to gather data from jenkins using groovy script and getting an error:

unable to resolve class com.cloudbees.hudson.plugins.folder.Folder

Below is the code:

import jenkins.model.*
import hudson.model.*
import groovy.time.TimeCategory
use ( TimeCategory ) {
    // e.g. find jobs not run in last 1 year
    sometimeago = (new Date() - 1.year)
}

jobs = Jenkins.instance.getAllItems()
lastabort = null
jobs.each { j ->
    if (j instanceof com.cloudbees.hudson.plugins.folder.Folder) { return }

    numbuilds = j.builds.size()

    if (numbuilds == 0) {
        println 'JOB: ' + j.fullName
        println '  -> no build'
        return
    }

    lastbuild = j.builds[numbuilds - 1]
    if (lastbuild.timestamp.getTime() < sometimeago) {
        println 'JOB: ' + j.fullName
        println '  -> lastbuild: ' + lastbuild.displayName + ' = ' + lastbuild.result + ', time: ' + lastbuild.timestampString2
    }
}

The error is:

rg.codehaus.groovy.control.MultipleCompilationErrorsExceptio‌​n: startup failed: Script1.groovy: 12: unable to resolve class com.cloudbees.hudson.plugins.folder.Folder @ line 12, column 20. if (j instanceof com.cloudbees.hudson.plugins.folder.Folder) { return } ^ 1 error at org.codehaus.groovy.control.ErrorCollector.failIfErrors(Erro‌​rCollector.java:302)


回答1:


I see Folder.java in jenkinsci/cloudbees-folder-plugin.

That means you need to:

  • check if you do have JENKINS/CloudBees Folders Plugin installed, or your groovy script would not be able to resolve that dependency.
  • Add "import com.cloudbees.hudson.plugins.folder.*" to be sure the script is able to make the instanceOf work.


来源:https://stackoverflow.com/questions/43459580/unable-to-resolve-class-com-cloudbees-hudson-plugins-folder-folder

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!