Java 如何为jenkins作业设置JDK版本

Java 如何为jenkins作业设置JDK版本,java,jenkins,groovy,Java,Jenkins,Groovy,我们有一个要求,我们需要将JDK版本从1.7设置为1.8,用于过去3个月内运行的所有作业 import hudson.model.* import hudson.task.* for (item in Hudson.instance.allItems){ if(item.name.contains("test")){ if(item.JDK != null){ manager.listener.logger.println("test

我们有一个要求,我们需要将JDK版本从1.7设置为1.8,用于过去3个月内运行的所有作业

import hudson.model.*
import hudson.task.*

for (item in Hudson.instance.allItems){         
    if(item.name.contains("test")){   
      if(item.JDK != null){
        manager.listener.logger.println("test job are  : " + item.name); 
        manager.listener.logger.println("JDK : " + item.JDK);
        manager.listener.logger.println("\n =========== \n");
       }    
    }
}
通过上面的代码,我能够以下面的格式为所有测试作业提供JDK版本

 test job are  : jacoco_test  
 JDK : JDK[SUN-JDK-1.7]
 ============================
 test job are  :kps-batch-snapshot-test  
 JDK : JDK[IBM-JDK-8]
但我无法将它们设置为IBM-JDK-8

提前感谢。

根据,可以使用setJDK()完成。试试这个:

item.JDK = Jenkins.instance.getJDK('IBM-JDK-8')

看看这篇文章,它可能会对你有所帮助。Thnaks但我已经看过这篇文章了,它从UI方面讨论了变化,而我从脚本方面看,setJDK()是不可用的没有方法的签名:hudson.model.hudson.setJDK()适用于参数类型:(java.lang.String)值:[IBM-JDK-8]“您添加了描述的行了吗?从错误消息中可以看出,您正在尝试对另一个对象调用setJDK()。我曾尝试在Jenkins 1.17 scriptConsole中运行此代码,但效果很好(将管理器…println更改为普通的“println”)。@JoachimNilsson,我遇到了错误:构建步骤失败,出现异常14:50:51 groovy.lang.MissingPropertyException:没有此类属性:Jenkins for class:,您能建议这有什么问题吗。我也在脚本中提供了有效的导入。@AlpeshGediya-这就是问题所在,Jenkins在包名中使用大写字母。使用import jenkins.model.*(小写)@AlpeshGediya-当您在Groovy中得到这种类型的错误(没有这样的属性:NNN)时,这表示NNN类/变量/任何内容不可用,因此您应该在包含确切文本“NNN”的行中搜索错误