【问题标题】:Jenkins - add JDK 11 to JDK listJenkins - 将 JDK 11 添加到 JDK 列表
【发布时间】:2019-08-10 02:32:00
【问题描述】:

我需要使用 Java 11 构建我的应用程序。
但是下拉菜单在 Java 9 中停止。

我该怎么办? OpenJDK 也是可以接受的。
我使用的是最新版本的 Jenkins。

编辑:到目前为止,我已经使用 wget 下载了二进制文件,在机器上解压它们,并通过全局配置添加了一个 JDK JDK_HOME 条目。

【问题讨论】:

  • 您使用的是哪个版本的 Jenkins?
  • @MikhailKholodkov 刚刚检查过,2.164,但我可以立即更新到 2.168
  • 2.164 应该支持 Java 11,无论如何更新都不会受到伤害。请参考这里:jenkins.io/doc/administration/requirements/jenkins-on-java-11
  • @MikhailKholodkov 但那是用 Java 11 运行 Jenkins 本身。我需要用它编译一个应用程序。

标签: java jenkins java-11


【解决方案1】:

JDK 可以使用通常预装的 JDK Tool Plugin 进行管理。

  • 转到“管理 Jenkins”>“全局工具配置”

  • 在 JDK 安装下单击“添加 JDK”

  • 删除默认安装程序并添加“提取”类型的安装程序 .zip/.tar.gz"

  • 查找 tar.gz 或 zip 格式的 JDK 存档的 URL。

OpenJDK 11 二进制文件可以在jdk.java.net/java-se-ri/11中找到

这是我对 openjdk-11+28 的设置

JDK name: OpenJDK-11
Label: (Keep this blank)
Download URL for binary archive: https://download.java.net/openjdk/jdk11/ri/openjdk-11+28_linux-x64_bin.tar.gz

Subdirectory of extracted archive: jdk-11

在我的例子中,openjdk-11+28_linux-x64_bin.tar.gz 确实包含一个名为jdk-11

子目录

如果设置不正确,您可能会看到错误:

Error: JAVA_HOME is not defined correctly.
  We cannot execute /var/jenkins_home/tools/hudson.model.JDK/JDK-11/bin/java

【讨论】:

  • 你可以这样定义gradle任务:build -x test -Dorg.gradle.java.home=
  • 在我的例子中 jdk11_path ==> /root/.jenkins/tools/hudson.model.JDK/OpenJDK-11/jdk-11
【解决方案2】:

我猜你正在使用JDK Tool Plugin

点击“管理 Jenkins”>“全局工具配置”>“添加 JDK”(JDK 安装附近)

删除 java.sun.com 安装程序。 只需点击下方的“添加安装程序”,然后选择“解压 .zip/.tar.gz”

输入以下内容:

标签:openjdk-11

下载地址:https://download.java.net/java/GA/jdk11/13/GPL/openjdk-11.0.1_linux-x64_bin.tar.gz

提取档案的子目录:jdk-11.0.1(下载和解压档案的可选子目录,用作工具的主目录。)

然后“保存”配置

=> 在构建作业中使用 JDK 标签 (openjdk-11)。


上面给出的下载链接似乎来自 java 11 尚未进入 LTS 的时间;

请转至Java Platform, Standard Edition 11 Reference Implementations,它将为您提供最新版本的下载链接...

[...] Java SE 11 (JSR 384) 的官方参考实现 [...] 完全基于 OpenJDK 社区中的 JDK 11 项目提供的开源代码。此参考实现适用于 JSR 384 最终版本(2018 年 9 月)和维护版本 1(2019 年 3 月)。

...在撰写本文时是:https://download.java.net/openjdk/jdk11/ri/openjdk-11+28_linux-x64_bin.tar.gz

【讨论】:

  • 是的,我正在使用那个插件!这基本上就是我现在手动完成的。很高兴知道它可以自动化。快速提问。如果 Jenkins 存在于 Docker 容器中并重新启动会怎样?这种方法总是下载一个新的副本吗?
  • 是的,直到您使用持久存储(容器中的挂载点:/var/jenkins_home)。或者可以使用本地 Web 服务器来更快地下载 JDK。
  • 由于某种原因,当我在标签中放入任何字符串时,安装程​​序无法执行,并且当保持字段为空时,工作 groups.google.com/forum/#!topic/zaproxy-jenkins/w5m9stza7pU
  • 此安装程序配置中的 label 字段用于限制此 jdk 可用的标签。将其留空以在所有节点上使用它。
  • 您无法使用该方法升级您的 jdk11 版本(在 url 中替换为 11.0.6 不起作用)。而且oracle给出的链接需要认证,不能粘贴url。
猜你喜欢
  • 2022-12-05
  • 2020-06-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-15
  • 2015-12-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多