当尝试使用gradle从Jenkins构建一个Android应用程序时,我 得到以下错误:
ERROR: JAVA_HOME is set to an invalid directory: /usr/lib/jvm/java-8-oracle
Please set the JAVA_HOME variable in your environment to match the location of your Java installation.
Build step 'Invoke Gradle script' changed build result to FAILURE
Build step 'Invoke Gradle script' marked build as failure
Finished: FAILURE
但是,当我检查JAVA_HOME变量时,我得到:
Macs-Mac-mini:~ mac$ echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home
正在运行java -version
。
Macs-Mac-mini:~ mac$ java -version
java version "1.8.0_112"
Java(TM) SE Runtime Environment (build 1.8.0_112-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.112-b16, mixed mode)
为什么Gradle会找到/usr/lib/jvm/java-8-oracle
尝试Gradle finds wrong JAVA_HOME和Gradle does not recognize the JAVA_HOME
答案 0 :(得分:1)
经过大量调试后发现,Gradle从Jenkins主JDK配置中获取了$ JAVA_HOME变量值而不是来自节点的$ JAVA_HOME变量。
我从Jenkins master中删除了默认的JDK配置路径,Gradle从节点中获取了$ JAVA_HOME变量值。
答案 1 :(得分:0)
您未以Jenkins用户身份登录,因此echo $JAVA_HOME
仅显示当前用户的JAVA_HOME
,这可能与Jenkins用户不同。
幸运的是,您可以从Jenkins用户界面设置环境变量。 (请参阅this example,只需将JMETER_HOME
替换为JAVA_HOME
)