如何为Jenkins作业更改JDK?

67

在这里输入图片描述我已经从另一台机器的现有jenkins服务器导入了jenkins作业。但问题是,它引用了旧机器上的JDK,而我想将其更改为使用我新的jenkins配置的JDK。但我找不到任何方法来做到这一点。所以,如果你遇到过这种情况并找到了解决办法,请也帮帮我。

谢谢。

11个回答

49

在Jenkins Web UI的“作业名称”->“配置”中,有一个JDK下拉菜单。它将列出Jenkins配置中可用的所有JDK。

根据@ Derek下面的评论,在较新的版本中,您可以在“管理Jenkins” ->“全局工具配置” ->“JDK”中找到它。

请注意,您需要“Overall/Administer”权限来管理Jenkins。


这个我们在创建新的任务时会得到,但是在编辑现有任务时不会得到。我可能错了,因为我刚开始配置Jenkins。 - GuruKulki
14
抱歉,我找不到它。我拥有的配置部分包括:高级项目选项、源代码管理、构建触发器、前置步骤、构建、后置步骤、构建设置、后构建操作。 - GuruKulki
2
明白了。在管理 Jenkins 部分配置 JDK 位置时出现错误,因此在下拉菜单中没有任何内容可显示。 - GuruKulki
8
最新的 Jenkins 版本是 2.7.4:选项为 "管理 Jenkins" -> "全局工具配置" -> "JDK"。 - Derek
2
只是一个用于解释细节的注释:如果您正确配置了JDK,并且在Jenkins中配置了多个JDK,则可以轻松地在作业配置中找到它。 - jackmis
显示剩余6条评论

43

对于您正在编辑的现有作业,如果您在“配置系统”Jenkins设置中添加了单个JDK配置,则可能无法使用JDK下拉选择。

但是,对于新工作,它是可用的。

令人惊讶的是,如果添加第二个JDK配置,则现有作业中也会出现。

在我看来,这似乎是一个错误(在Jenkins ver. 1.629中进行了测试)。

请参见此处提出的类似问题:JDK selection is hidden even when a JDK is configured


是的,没错,但即使出现了JDK下拉菜单,构建仍会出现错误,因为Maven找不到Java。 - Xin Meng
2
仍然是2.107.3版本的问题...刚刚浪费了我30分钟的时间。 - Corin Fletcher
以上的解决方法解决了我的问题。在2.138.3版本中仍存在问题。 - Slack Flag
没错!我不得不在全局配置部分添加另一个JDK,然后它才出现在作业部署配置部分。非常感谢。 - tarekahf
似乎是真的。工作正在进行,但没有jdk选项可用。 - Čamo

23

以下是你应该在工作中进行配置的位置:

JDK中有一个下拉框,其中包含在Jenkins中配置的不同JDK。 Job

以下是你应该在Jenkins的配置中进行配置的位置:

Jenkins general config


2
我在旧的Jenkins UI中看到了JDK下拉菜单,不确定为什么它在新的UI中也可用。 - GuruKulki
JDK是否在“管理Jenkins->配置系统->JDK安装”中进行配置? - nomis
明白了。在管理 Jenkins 部分配置 JDK 位置时出现错误,因此下拉菜单中没有任何内容可显示。 - GuruKulki
没有这样的 JDK 部分。 - IgorGanapolsky
3
JDK 部分现在在“管理 Jenkins”->“全局工具配置”中。 - JanPl

17

使用最新的Jenkins版本2.7.4,但该版本对于现有作业存在一个错误。

  1. 通过Manage Jenkins -> Global Tool Configuration -> JDK 添加新的JDK。 ** 如果您编辑当前作业,则JDK下拉菜单不会显示(错误)

  2. 单击 http://your_jenkin_server:8080/restart 并重启服务器

  3. 重新配置作业

现在,在Jenkins Web界面中的“job name”-> 配置中,您应该可以看到JDK下拉菜单。它将列出Jenkins配置中可用的所有JDK。


1
重启是关键,所以这个答案结合了@nomis的答案对我很有帮助。(使用Jenkins v2.32.3) - Jeremy
这对于管道项目不起作用 - 因此必须在Jenkinsfile中明确引用JDK版本。 - Adam Hughes

5
这是我对Jenkins版本1.636的体验: 只要在Jenkins JDK部分中只配置了一个“自动安装”JDK,我就看不到作业=>配置部分中的“JDK”下拉菜单, 但是一旦我在Jenkins中添加第二个JDK,则JDK下拉菜单将出现在作业=>配置部分中,共有3个选项[(系统),JDK1,JDK2]。

这与我的Jenkins 1.647的经验类似,但在我的情况下,JDK1是一个明确命名的JDK。只有当我添加了第二个时,我才获得了指定“此项目使用的JDK”的选项,并获得了三个选项。 - Spangen

4

你可以使用Pipeline在旧工作中设置新的JDK。只需编写以下内容:

 tools { 
   jdk '新JDK版本号' 
} 

pipeline{
 agent any
 tools{
     jdk 'deafault'
 }
 stages{ 
    stage('build'){
       ..............
       }
    } 
 } 
}

默认情况下,"default"只是在将JDK配置到Jenkins全局系统时给它的名称。


3

如果您有一个多配置(矩阵)工作,您将没有JDK下拉菜单,但需要将JDK配置为构建轴。


1

小心工作

1 - 如果你的工作基于Maven,Jenkins会采用你的默认Java配置,并且你可以在POM.XML中决定编译级别。

2 - 如果你有自由样式的工作,你可以在工作的配置选项中选择要使用的JDK。

希望这能帮到你。


0

我也遇到了同样的问题(运行Jenkins v2.303.1),在项目设置中看到新的JDK之前,我需要添加新的JDK。

进入“管理Jenkins(德语:Jenkins verwalten)”,然后进入“工具配置(德语:Konfiguration der Hilfsprogramme)”,应该有一个关于“JDK”的部分。在这里,您可以管理不同的Java版本(无论是下载还是使用本地版本): Picture of JDK section

设置完这些JDK后,我就能够选择要使用哪个JDK版本:JDK choose option


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接