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

时间:2009-04-14 14:31:59

标签: hudson java

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

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

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

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

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

9 个答案:

答案 0 :(得分:27)

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

在Manage Hudson下 - >配置系统您可以添加许多JDK并指定JAVA_HOME的路径。在每个作业的配置中,您随后选择了要运行该作业的JDK。

答案 1 :(得分:25)

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

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

  1. 在作业配置页面中勾选“此版本已参数化”
  2. 添加一个名为JAVA_HOME的新String参数,并将默认值设置为JDK位置
  3. 构建字符串参数变成环境变量并不明显,但是一旦你知道它们,它就很容易以这种方式设置JDK。

    Hudson邮件列表recommended another approach上的开发人员在节点配置中使用主JDK配置和覆盖...但只是设置JAVA_HOME env var对我来说似乎更容易。

答案 2 :(得分:2)

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

答案 3 :(得分:2)

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

管理节点>奴隶>配置>环境变量

例如

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

答案 4 :(得分:1)

最好的方法是,

  1. 将所有必需的JDK安装到您的系统中。
  2. 在配置页面的JDK标题下将这些添加到jenkins。
  3. 将Maven Info插件安装到jenkins
  4. 重新启动jenkins
  5. 转到您的工作配置页面。
  6. 从Maven Info插件配置
  7. 下的JDK组合框中选择所需的JDK
  8. 构建
  9. 享受!!!

答案 5 :(得分:0)

  

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

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

  

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

但我觉得这对JDK来说无法运行。

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

答案 6 :(得分:0)

你可以这样使用。

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

示例:

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

PATH =%JAVA_HOME%/ bin中;%PATH%

ant build.xml

答案 7 :(得分:0)

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

答案 8 :(得分:0)

我遇到的问题是安装的JDK是JDK 8,而我希望Jenkins使用JDK 7。因此,在Jenkins构建框上安装JDK 7后,

我将JDK路径添加到jenkins Configurations:

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

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

导出JAVA_HOME =“”

将最后两行更改为:

echo“/ bin / java”$ javaArgs -jar“$ war”$ args

exec“/ bin / java”$ javaArgs -jar“$ war”$ args