我有一个jenkins工作,它调用gradle脚本。在这份工作中,我首先有一个shell脚本:
此脚本应调整文件local.properties
。如您所见,我还为Java添加了两个系统变量的导出。
在那个shell脚本之后,我像这样运行gradle
但是在运行此作业时,我收到错误消息
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:compileProdReleaseJavaWithJavac'.
> Could not find tools.jar. Please check that /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.144-0.b01.el7_4.x86_64/jre contains a valid JDK installation.
我有一个RedHat系统(Red Hat Enterprise Linux Server release 7.4 (Maipo)
),并且安装了Oracle JDK和OpenJDK。据我所知,这应该不是问题。
但是,当我设置JAVA_HOME
和gradle属性org.gradle.java.home
时,为什么Jenkins作业不使用Oracle JDK?
如果需要更多信息,我可以提供。
答案 0 :(得分:0)
当您在第一个shell中导出变量时,它们不会在该shell的执行之外持久化。它与运行shell(bash,zsh,ksh),运行一些命令,然后退出shell相同。您的变量不会存在于该shell之外。
要正确设置JAVA_HOME,您需要添加一个插件,允许您在"构建环境"中注入环境变量。您的配置部分(我无法记住我头顶的插件名称),甚至更容易,只需添加一个指向您的Java的全局工具(管理Jenins - >全局工具配置)本地计算机然后在freestyle作业配置中引用该工具。它会为你设置JAVA_HOME。