Jenkins 如何在 Mac 上内部设置 JAVA_HOME?

Dej*_*ges 5 java build java-home jenkins osx-mountain-lion

我有一个有趣的问题。在 Linux 上使用 Jenkins 构建 master,并拥有一个 Mac Mountain Lion 节点(此处描述的内容在 Linux 和 Windows 上运行良好,但仅在这台 Mac 计算机上使用 SSH 连接和 Java Web Start 时出现问题。

在客户端机器上:

  • 我已经安装了 JDK(并验证了它)。
  • 我通过 .profile 为用于与 Jenkins 通信的构建用户设置了 JAVA_HOME 槽
  • Java 可以从 shell 以及 Maven 访问

但 Jenkins 总是在启动作业后设置另一个 JAVA_HOME ($JENKINS_HOME/tools/JDK/jdk1.6),但该文件夹是空的(在 Linux 节点上,应该在该文件夹内部署 JDK,但在 Mac 上则不然)。

有谁知道是否有可能改变詹金斯的这种行为?在 Jenkins 配置中设置自定义 JAVA_HOME 、使用 .profile 文件、在作业中动态导出变量等都没有帮助。

我使用的是最新版本1.477

2012 年 8 月 15 日更新和修复

因此,在 Mac 上运行作业时会出现一行内容:

跳过 JDK 安装:未知的 CPU 名称:mac os x

关键是 Oracle 没有发布适用于 Mac 的 JDK,这是一种“功能”。

我为解决此问题所做的步骤是:

  • 配置 Jenkins 和 Mac 节点之间的 SSH 连接
  • Mac 上手动安装 JDK
  • 添加到节点配置 Java 作为工具并指定 Mac 节点上 JDK 主目录的路径
  • 从节点配置中删除了 Maven 作为工具(因为它是从节点上已有的 Lion 版本导出的,如果您不删除它,您的 Maven 内容将会因任何冲突原因而失败)。

这解决了狮子和山狮身上的问题。

Dej*_*ges 3

因此,在 Mac 上运行作业时会出现一行内容:

跳过 JDK 安装:未知的 CPU 名称:mac os x

关键是 Oracle 没有发布适用于 Mac 的 JDK,这是一种“功能”。

我为解决此问题所做的步骤是:

  1. 配置 Jenkins 和 Mac 节点之间的 SSH 连接
  2. Mac 上手动安装 JDK
  3. 添加到节点配置 Java 作为工具并指定 Mac 节点上 JDK 主目录的路径
  4. 从节点配置中删除了 Maven 作为工具
    (因为它是从节点上已有的 Lion 版本导出的,如果您不删除它,
    您的 Maven 内容将会因任何冲突原因而失败)。

这解决了狮子和山狮身上的问题。