有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java无法解析类com。云蜂。哈德逊。插件。文件夹文件夹

我正在尝试使用groovy脚本从jenkins收集数据,但出现了一个错误:

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

代码如下:

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
    }
}

错误是:

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)


共 (2) 个答案

  1. # 1 楼答案

    我在^{}中看到^{}

    这意味着你需要:

    • 检查是否安装了JENKINS/CloudBees Folders Plugin,否则groovy脚本将无法解析该依赖关系
    • 添加“import com.cloudbees.hudson.plugins.folder.*”以确保脚本能够使instanceOf工作
  2. # 2 楼答案

    在运行在Jenkins中导入库的groovy脚本时,请检查Jenkins构建步骤是否是“执行系统groovy脚本”,而不是普通的“执行groovy脚本”

    “系统”脚本在现有JVM上运行,而不是生成一个新的JVM,因此无法访问原始Jenkins JVM实例可用的共享

    Groovy脚本与系统Groovy脚本https://plugins.jenkins.io/groovy/