我正在使用Shell脚本使用Gradle生成war文件,但出现以下错误。

ls
cd ClaimCenter1003
javac -version
chmod 777 gwb.sh
./gwb.sh warTomcatDbcp
05-Jun-2020 13:22:54    ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
05-Jun-2020 13:22:54
05-Jun-2020 13:22:54    Please set the JAVA_HOME variable in your environment to match the
05-Jun-2020 13:22:54    location of your Java installation.

在所有竹服务器中都设置了Java,尽管不能通过控制台在许多服务器中使用,但是当我从命令行触发构建时,它运行良好。

该构建在某些服务器上工作,可以根据需要提供输出:
javac 1.8.0_161
build   05-Jun-2020 13:18:01    Downloading file:/opt/bamboo-agent-home/xml-data/build-dir/GUID-GCCA-VAR/ClaimCenter1003/gradle/wrapper/./gradle.zip
build   05-Jun-2020 13:18:02    .................................................................................
build   05-Jun-2020 13:18:04
build   05-Jun-2020 13:18:04    Welcome to Gradle 5.1.1!
build   05-Jun-2020 13:18:04
build   05-Jun-2020 13:18:04    Here are the highlights of this release:
build   05-Jun-2020 13:18:04     - Control which dependencies can be retrieved from which repositories
build   05-Jun-2020 13:18:04     - Production-ready configuration avoidance APIs

在CLI中完成构建的时间

CLI BUILD IMAGE

请帮助我。谢谢

最佳答案

未在失败的构建代理上设置JAVA_HOME或PATH。

如果我遇到您的情况,我将主要采取措施确保这些情况确实存在。

一种简单的方法是通过简单地使用docker来“构建化”您的构建,例如:docker run openjdk:{JDK_VERSION} bash `./buildscript.sh`

另一种方法是在开始实际的构建步骤之前,确保在构建代理程序上正确安装了Java。问题在于,您的构建代理实例似乎已被其他构建重用,因此即使此工作可行,也可能导致下游其他错误,因此,我建议通过docker对构建进行虚拟化。

我会检查$ JAVA和$ JAVA_HOME是否都正确设置,否则,请显式安装Java(例如,将https://docs.aws.amazon.com/corretto/latest/corretto-8-ug/generic-linux-install.html安装到Amazon Coretto openjdk的步骤中)或如果您确定Java存在,则手动设置环境变量在目标计算机上。

07-25 21:21