GoCD代理无法识别JAVA_HOME环境变量

时间:2015-05-22 08:15:35

标签: environment-variables java-home go-cd

我正在使用GoCD测试持续交付管道。服务器和代理程序位于Oracle Java 8提供的单独Docker容器中 我设置了一个测试任务,它检查了我的Git存储库并使用maven进行编译。作为测试命令,我使用简单的mvn clean build

当我启动任务时,我得到以下失败的构建结果:

07:50:59.395 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.3:compile (default-compile) on project xxxxx: Compilation failure 07:50:59.395 [ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?

当我在容器内部运行mvn命令时,一切正常。经过长时间搜索解决方案后,我发现了一些暗示Java和Maven环境变量问题的提示。 在这两个系统上,这些变量的输出似乎都是正确的:

go@d86b9572ed7e:/tmp$ echo $M2_HOME $JAVA_HOME /usr/share/maven /usr/lib/jvm/java-8-oracle

我最终解决的最终解决方案是将$JAVA_HOME变量设置为GoCD服务器中的环境变量,作为管道的设置。然后,一切正常,但我真的不明白为什么系统变量没有被代理人接收。

2 个答案:

答案 0 :(得分:2)

代理具有用于执行作业和任务的配置文件。默认位置为:/ etc / default / go-agent 添加

export JAVA_HOME="/usr/lib/jvm/java-8-oracle/"

到这个档案。

答案 1 :(得分:1)

您还可以在管道和阶段中指定环境变量。如果为舞台使用通用模板,则可以在那里定义JAVA_HOME。