2016-09-27 227 views
1

我们需要将过去3个月中运行的所有作业的JDK版本从1.7设置为1.7。如何为jenkins作业设置JDK版本

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。 ()

在此先感谢..

+0

看看这篇文章可能会对你有所帮助。 http://stackoverflow.com/questions/28810477/how-to-change-the-jdk-for-a-jenkins-job – noned

+0

Thnaks但我已经看过帖子,它谈论从UI方面的变化,在那里作为我我从脚本端查找... – dildeepak

回答

3

按照Javadoc,它可以使用setJDK完成。试试这个:

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

setJDK()is not available .. '没有方法签名:hudson.model.Hudson.setJDK()适用于参数类型:(java.lang.String)values:[IBM -JDK-8]' – dildeepak

+1

您是否按照描述添加了该行?它从你的错误消息看你试图在另一个对象上调用setJDK()。我已经尝试在Jenkins 1.17 scriptConsole中运行此代码,它工作得很好(将管理器... println更改为普通'println')。 –

+0

感谢您指出错误...它为我工作.. :) – dildeepak