30

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

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

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

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

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

4

9 回答 9

27

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

在 Manage Hudson -> Configuration System 下,您可以添加多个 JDK 并指定 JAVA_HOME 的路径。然后,在每个作业的配置中,您选择了希望该作业在哪个 JDK 上运行。

于 2009-04-14T15:00:44.287 回答
25

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

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

  1. 在作业配置页面中勾选“This build is parameterized”
  2. 添加一个名为 JAVA_HOME 的新字符串参数,并将默认值设置为 JDK 位置

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

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

于 2009-08-12T20:03:19.997 回答
2

我们通过使用两个不同的 Java Hudson 节点来解决这个问题。一个用于 Java 6,一个用于 Java 7。然后我们根据需要将作业分配给不同的节点。

于 2012-04-25T12:02:27.973 回答
2

可以将各个从代理配置为在您运行它们的系统上使用特定的 JDK。

管理节点 > 从站 > 配置 > 环境变量

例如

名称:JAVA_HOME 值:C:\Program Files (x86)\Java\jdk1.6.0_45\

于 2013-06-14T13:02:23.100 回答
1

最好的办法是,

  1. 将所有必需的 JDK 安装到您的系统。
  2. 将这些添加到配置页面中 JDK 标题下的 jenkins 中。
  3. 将 Maven Info 插件安装到 jenkins
  4. 重启詹金斯
  5. 转到您的作业配置页面。
  6. 从出现在 Maven 信息插件配置下的 JDK 组合框中选择所需的 JDK
  7. 构建它
  8. 享受!!!
于 2015-01-19T05:46:06.143 回答
0

一种为此项目设置自定义环境变量的方法,这将允许我将 JAVA_HOME 设置为 JDK6 位置。这将使 Ant 能够根据需要在 Java6 上运行。

为 Ant 配置构建步骤时,在“调用 Ant”下,如果单击“高级”,则可以设置自定义 Java 选项。屏幕帮助说:

如果您的构建需要自定义 ANT_OPTS,请在此处指定。通常,这可用于指定要使用的 java 内存限制,例如 -Xmx512m。请注意,其他 Ant 选项(例如 -lib)应转到“Ant 目标”字段。

但是,我感觉这不适用于 JDK。

Manage Hudson您是否在/下为此 Hudson 实例配置了多个 JDK 安装Configure System

于 2009-04-14T14:52:46.660 回答
0

你可以这样使用。

在批处理命令窗口中,您最初可以设置变量名称 JAVA_HOME,将此自定义变量名称分配给 PATH 变量。然后你可以调用一个蚂蚁脚本来选择特定的文件。

例子:

设置 JAVA_HOME=C:/java/jdk1.6.1

PATH=%JAVA_HOME%/bin;%PATH%

蚂蚁构建.xml

于 2009-08-04T04:28:45.220 回答
0

看看 Setenv 插件。在那里你可以设置变量,如 JAVA_HOME=C:/java/jdk1.6.1 PATH=%JAVA_HOME%/bin;%PATH%

于 2010-05-27T11:27:48.347 回答
0

我有一个问题,安装的 JDK 是 JDK 8 而我希望 Jenkins 使用 JDK 7 。因此,在 Jenkins 构建盒上安装 JDK 7 后,

我将 JDK 路径添加到 jenkins 配置:

Jenkins -> 管理 Jenkins -> 配置系统 -> JDK -> 添加 JDK 名称和路径

另外,编辑 jenkins-runner.sh:添加以下行:

导出 JAVA_HOME=""

将最后两行更改为:

echo "/bin/java" $javaArgs -jar "$war" $args

exec "/bin/java" $javaArgs -jar "$war" $args

于 2015-11-04T16:34:51.453 回答