如何将 Hudson 作业配置为使用特定的 JDK?

2022-09-01 11:41:43

我有许多项目在哈德逊奴隶上运行。我希望其中一个在Java6下运行Ant,而不是默认的(在我的环境中是Java5)。

在项目配置视图中,我希望找到:

  • 一个显式选项,允许我设置用于此项目的自定义 JDK 位置。
  • 一种为此项目设置自定义环境变量的方法,这将允许我将JAVA_HOME设置为 JDK6 位置。这将使 Ant 根据需要在 Java6 上拾取并运行。

有没有办法做到以上任何一种?如果其中一个设施可用,我看不到如何访问它。我在Hudson 1.285上运行。

如果可能的话,我宁愿避免使用“execute shell”操作而不是“invoke Ant”操作:我的从属程序在z/OS上,Hudson似乎没有在这个平台上正确创建临时shell脚本(可能是一个编码问题)。


答案 1

我们配置了 Java 5 和 Java 6 以在 Hudson 实例中使用。

在“管理 Hudson -> 配置系统”下,您可以添加多个 JDK 并指定JAVA_HOME路径。然后,在每个作业的配置中,选择希望该作业在其上运行的 JDK。


答案 2

事实证明,如果使构建参数化,则添加的任何字符串参数都将成为环境变量。使用这种方法,可以为构建设置任何环境变量,包括由 Ant 选取的JAVA_HOME。

所以对我来说最好的解决方案是:

  1. 在作业配置页面中,勾选“此构建已参数化”
  2. 添加一个名为 JAVA_HOME 的新 String 参数,并将默认值设置为 JDK 位置

构建字符串参数成为环境变量并不明显,但是一旦你知道它们会成为环境变量,就很容易以这种方式设置JDK。

Hudson邮件列表上的开发人员推荐了另一种方法,使用节点配置中的主JDK配置和覆盖...但是对我来说,仅仅设置JAVA_HOME env var 似乎更容易。


推荐