【问题标题】:Jenkins - Configuring JDK - Only Textbox, and auto-install failsJenkins - 配置 JDK - 只有文本框,自动安装失败
【发布时间】:2015-11-17 15:07:25
【问题描述】:

我正在尝试为我们的 Android 应用程序创建一个基于 Jenkins 的构建服务器。 我正在使用带有最新 Jenkins (1.638) 的 CentOS 机器(虚拟机),但无法成功完成构建。

构建失败,因为它无法自动安装 JDK(在机器上,有 OpenJDK 24.91-b01 a-la 1.7.0_91)

java.io.IOException: JDK data is empty.
    at hudson.tools.JDKInstaller.locate(JDKInstaller.java:418)
    at hudson.tools.JDKInstaller.performInstallation(JDKInstaller.java:134)
    at hudson.tools.InstallerTranslator.getToolHome(InstallerTranslator.java:68)
    at hudson.tools.ToolLocationNodeProperty.getToolHome(ToolLocationNodeProperty.java:108)
    at hudson.tools.ToolInstallation.translateFor(ToolInstallation.java:206)
    at hudson.model.JDK.forNode(JDK.java:143)
    at hudson.model.AbstractProject.getEnvironment(AbstractProject.java:358)
    at hudson.model.Run.getEnvironment(Run.java:2232)
    at hudson.model.AbstractBuild.getEnvironment(AbstractBuild.java:941)
    at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1036)
    at hudson.scm.SCM.checkout(SCM.java:485)
    at hudson.model.AbstractProject.checkout(AbstractProject.java:1275)
    at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:610)
    at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:532)
    at hudson.model.Run.execute(Run.java:1741)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
    at hudson.model.ResourceController.execute(ResourceController.java:98)
    at hudson.model.Executor.run(Executor.java:410)
Finished: FAILURE

Manage Jenkins 屏幕上,我没有看到 JDK(以及其他自动安装程序:ANT、Maven、Gradle 等)的选择框

所以:

  1. 为什么我没有选择框?我应该输入什么值才能起作用?如何解决?
  2. 我担心自己手动安装 JDK 会在全局范围内安装它,从而导致 Jenkins 的 JDK 版本冲突(有关 CentOS 安装,请参阅 this)。我是否需要考虑这一点?

【问题讨论】:

  • @StackFlowed - 我想要一个自动安装.. 我不想登录到服务器进行 JDK 升级... 我不能有一个正确的自动安装吗?
  • 附加图像来自管理控制台(“管理 Jenkins”)...
  • 最后一个建议可能听起来很愚蠢,但您是否尝试过放一个版本?像 8u66 或下载该版本的链接?
  • 是的,我得到了同样的错误。 (这并不愚蠢,这是我尝试的第一件事,并且我用不同的值尝试了多次。仍然是半身像)。
  • 在 Jenkins JIRA 中跟踪这方面的任何想法?在这里不提供自动完成选项似乎很荒谬。

标签: java android jenkins


【解决方案1】:

我发现记录JDK ID的唯一来源是JDKInstaller.java的jenkins源代码:

Sun 分配给每个 JDK 的版本 ID,例如 "jdk-6u13-oth-JPR@CDS-CDS_Developer"

这个ID可以在下载页面的“ProductRef”查询参数中看到,比如 https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/ViewProductDetail-Start?ProductRef=jdk-6u13-oth-JPR@CDS-CDS_Developer

但是,这个页面似乎不存在。我通过安装不同的 JDK 来运行 Jenkins 解决了这个问题。 JDK 8u66 不起作用,但 JDK 8u60 就像一个魅力。安装较旧的 JDK 后,我必须从插件站点更新可用的更新。之后我得到了经典的下拉框,我可以从中选择 Java 版本。

【讨论】:

    猜你喜欢
    • 2012-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-11
    • 1970-01-01
    相关资源
    最近更新 更多