我正在使用Jenkins在mac体育场VM上构建一个android项目。
当我VNC进入VM时,我可以很好地构建项目。 Java安装在/usr/bin/java
,我的$PATH
包含/usr/bin
。
当我从Jenkins作业运行相同的命令时,它失败并带有
ERROR: JAVA_HOME is set to an invalid directory: /var/lib/jenkins/jdk1.8.0_25
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation.
VM上不存在 /var/lib/jenkins/jdk...
。我还尝试更新构建作业以包含export JAVA_HOME=/usr/bin
,但后来我得到了一个不同的错误:
Error: Failed to run "java -version", make sure that you have a JDK installed.
You can get it from: http://www.oracle.com/technetwork/java/javase/downloads.
Your JAVA_HOME is invalid: /usr/bin
所有其他步骤似乎都有效,所以我可以告诉代码正在下载到工作区,其他所有内容都已正确安装,正如我所说,我可以直接从命令行在VM上构建android。
如何让Jenkins在虚拟机上构建?
答案 0 :(得分:5)
在mac上设置JAVA_HOME的最佳方法是在从oracle下载并安装所需的JDK后使用java_home
:
export JAVA_HOME=`/usr/libexec/java_home`
如果您希望Jenkins使用旧版本的JDK,请确保使用-v标志:
export JAVA_HOME=`/usr/libexec/java_home -v 1.6`
要预览位置,只需在终端中输入java_home命令:
$ /usr/libexec/java_home -v 1.7
/Library/Java/JavaVirtualMachines/jdk1.7.0_67.jdk/Contents/Home
$ /usr/libexec/java_home
/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home