我正在尝试为我们的Android应用程序创建一个基于Jenkins的构建服务器。 我正在使用CentOS机器(虚拟)和最新的Jenkins(1.638),我无法使构建成功完成。
构建失败,因为它无法自动安装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,...)
SO:
答案 0 :(得分:0)
我发现记录JDK ID的唯一来源是jenkins源代码JDKInstaller.java:
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版本。