Fel*_*lix 5 java android jenkins
我正在尝试为我们的 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
Run Code Online (Sandbox Code Playgroud)
在Manage Jenkins屏幕上,我没有看到 JDK(和其他自动安装程序:ANT、Maven、Gradle 等)的选择框
所以:
我发现记录 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/查看ProductDetail-Start?ProductRef=jdk-6u13-oth-JPR@CDS-CDS_Developer
但似乎该页面不存在。我通过安装不同的 JDK 来运行 Jenkins 解决了这个问题。JDK 8u66 不起作用,但 JDK 8u60 却能正常工作。安装旧版 JDK 后,我必须从插件站点更新可用更新。之后我得到了经典的下拉框,我可以从中选择 Java 版本。