我有一个完美运行的AWS VM,我将其复制,以便为舞台和制作提供类似的环境。
我停止了VM创建快照,但现在,当我使用jenkins slave启动构建时,我收到此错误:
Building remotely on <nodename> in workspace /home/ubuntu/workspace/<workspaceName>
Installing JDK
java.io.IOException: Unable to find JDK with ID=
at hudson.tools.JDKInstaller.locate(JDKInstaller.java:422)
at hudson.tools.JDKInstaller.performInstallation(JDKInstaller.java:134)
at hudson.tools.InstallerTranslator.getToolHome(InstallerTranslator.java:68)
at hudson.tools.ToolLocationNodeProperty.getToolHome(ToolLocationNodeProperty.java:107)
at hudson.tools.ToolInstallation.translateFor(ToolInstallation.java:205)
at hudson.model.JDK.forNode(JDK.java:130)
at hudson.model.AbstractProject.getEnvironment(AbstractProject.java:355)
at hudson.model.Run.getEnvironment(Run.java:2228)
at hudson.model.AbstractBuild.getEnvironment(AbstractBuild.java:932)
at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:828)
at hudson.scm.SCM.checkout(SCM.java:484)
at hudson.model.AbstractProject.checkout(AbstractProject.java:1274)
at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:609)
at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:531)
at hudson.model.Run.execute(Run.java:1738)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
at hudson.model.ResourceController.execute(ResourceController.java:98)
at hudson.model.Executor.run(Executor.java:381)
Finished: FAILURE
或者,我有时会得到这种精确度
(在“安装JDK”和之间“java.io.IOException:无法找到ID =”的JDK)
FATAL: Failed to get Environment Vars from build
java.lang.RuntimeException: Failed to get Environment Vars from build
at jenkins.plugins.publish_over.BPPlugin.getEnvironmentVariables(BPPlugin.java:84)
at jenkins.plugins.publish_over.BPPlugin.perform(BPPlugin.java:93)
at jenkins.plugins.publish_over_ssh.BapSshPreBuildWrapper.setUp(BapSshPreBuildWrapper.java:64)
at hudson.model.Build$BuildExecution.doRun(Build.java:154)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:536)
at hudson.model.Run.execute(Run.java:1738)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
at hudson.model.ResourceController.execute(ResourceController.java:98)
at hudson.model.Executor.run(Executor.java:381)
我没有注意到是什么原因导致这些额外的线条出现,因为我尝试了我想到的一切,包括
JDK当然已经在这里了。在重启之前一切正常。 所以我的第一个问题是“为什么要尝试安装JDK?”
我不知道它正试图获得的“环境变量”,并且我不知道VM配置有任何变化,所以我完全没有想法。
答案 0 :(得分:1)
看起来问题是“只是”配置的JDK设置值从Jenkins中消失了。
我完全不知道为什么会这样做,因为没有人会修改这个设置,而且它位于需要首先打开的子菜单中,使其免受操纵错误的影响。
无论如何,这是我修复它的方式。它就像在Jenkins中设置JAVA_HOME值一样简单:
•转到管理Jenkins - &gt;配置系统
•点击“安装JDK”
•取消“自动安装”(我的环境已经设置,我只需要再次设置变量)
•设置JAVA_HOME(在我的情况下,/usr/lib/jvm/java-7-openjdk-amd64
),并可选择命名您的安装
mkdir -p /usr/lib/jvm/java-7-openjdk-amd64/bin/
ln -s /usr/bin/java /usr/lib/jvm/java-7-openjdk-amd64/bin/java
我还在Jenkin的conf中添加了一个具有相同/usr/lib/jvm/java-7-openjdk-amd64
值的JAVA_HOME环境变量。可能是多余的
我们的Jenkins版本是1.609.3(在/var/lib/jenkins/config.xml
中签入),
如果您遇到同样的问题,请发表评论,因为我真的怀疑这个错误来自用户。
答案 1 :(得分:0)
我们遇到了类似的问题,但发现系统没有安装适当版本的jdk。在Jenkins上,它看起来像是在$ JENKINS_HOME / tools / hudson.model.JDK中安装jdks(在我们的例子中是/var/lib/jenkins/tools/hudson.model.JDK/jdk8)。
我们按照上述步骤进行了更新,效果非常好。