任务':app:compileProdReleaseJavaWithJavac'的执行失败。 >找不到tools.jar

时间:2017-09-21 12:35:47

标签: jenkins android-gradle

我有一个jenkins工作,它调用gradle脚本。在这份工作中,我首先有一个shell脚本:

enter image description here

此脚本应调整文件local.properties。如您所见,我还为Java添加了两个系统变量的导出。

在那个shell脚本之后,我像这样运行gradle

enter image description here

但是在运行此作业时,我收到错误消息

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?

如果需要更多信息,我可以提供。

1 个答案:

答案 0 :(得分:0)

当您在第一个shell中导出变量时,它们不会在该shell的执行之外持久化。它与运行shell(bash,zsh,ksh),运行一些命令,然后退出shell相同。您的变量不会存在于该shell之外。

要正确设置JAVA_HOME,您需要添加一个插件,允许您在"构建环境"中注入环境变量。您的配置部分(我无法记住我头顶的插件名称),甚至更容易,只需添加一个指向您的Java的全局工具(管理Jenins - >全局工具配置)本地计算机然后在freestyle作业配置中引用该工具。它会为你设置JAVA_HOME。