2016-09-27 48 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

相關問題