【发布时间】:2012-08-11 00:01:37
【问题描述】:
我有一个有趣的问题。在 Linux 上使用 Jenkins 构建主节点,并拥有一个 Mac Mountain Lion 节点(此处描述的内容在 Linux 和 Windows 上运行良好,但仅在这台 Mac 机器上存在问题,同时使用 SSH 连接和 Java Web Start。
在客户端机器上:
- 我已经安装了 JDK(并验证了它)。
- 我设置了 JAVA_HOME 槽 .profile 用于与 Jenkins 通信的构建用户
- 可以从 shell 和 Maven 访问 Java
但 Jenkins 总是在启动作业后设置另一个 JAVA_HOME ($JENKINS_HOME/tools/JDK/jdk1.6) 但该文件夹是空的(在 Linux 节点上,应该在此文件夹内部署 JDK,并且是,但不是在 Mac 上)。
有谁知道在 Jenkins 中是否有可能改变这种行为?在 Jenkins 配置中设置自定义 JAVA_HOME 都没有帮助,使用 .profile 文件,在作业中即时导出变量等。
我使用的是最新版本 1.477
2012 年 8 月 15 日更新和修复
所以,在 Mac 上运行作业时有一行,说
JDK 安装已跳过:未知 CPU 名称:mac os x
关键是甲骨文不会发布适用于 Mac 的 JDK,这是一种“功能”。
我解决此问题的步骤是:
- 已配置 Jenkins 和 Mac 节点之间的 SSH 连接
- 手动将 JDK 安装到 Mac
- 添加到节点配置 Java 作为工具并指定 Mac 节点上 JDK 主目录的路径
- 已从节点配置中删除 Maven 作为工具(因为它已从节点上的 Lion 版本中导出,如果您不删除它,您的 Maven 内容将因任何冲突原因而失败)。
这修复了 Lion 和 Mountain Lion 的问题。
【问题讨论】:
-
请写下您的“更新和修复”作为答案,这样它就不会作为未解决的问题挂起。谢谢!
-
当然,做到了。很抱歉给您带来不便。
标签: java build jenkins osx-mountain-lion java-home