1

我正在为一个生成 javascript 文件的项目设置一个新的 Hudson 任务(在 WinXP 上),并在构建过程中执行 xslt 转换。

当从 Hudson 运行时,ant 构建在 XSL 转换上失败,但是当从命令行运行相同代码库(即在 Hudson 的工作区)上的相同构建时,它工作正常。

失败消息是:

第 208 行:变量“screen”在同一范围内多次定义。

我尝试将 Hudson 配置为直接使用 ant 和使用批处理脚本 - 在 Hudson 中都失败了。

我已经在 Firefox、IE6 和 Chrome 中尝试过,并且看到了同样的问题。

谁能建议我们如何解决哈德逊的这个问题?

4

2 回答 2

1

问题解决了。

我们的构建实际上依赖于 jdk 1.4.2,而 Hudson 似乎使用 1.6 运行。当我将 Hudson 设置为作为服务运行时,它以我的本地用户身份运行,这意味着它选择了 1.4.2 JAVA_HOME 环境变量 - 因此可以工作。

我想另一种可能的解决方案是将 Hudson 配置为默认使用 1.4.2。

于 2009-05-21T16:01:44.507 回答
0

我认为这不是 Hudson 的直接问题,因为它与构建脚本和/或环境本身有关。

您的构建脚本是否依赖于定义的某些环境变量,或者更糟糕的是,从某个目录结构中运行的作业(即,如果它从 /home/mash/blah 下运行,但不能从 /tmp 等另一个目录下运行,它可以工作)?构建脚本是否通过相对路径引用外部文件?

这些是我要研究的事情。对于环境变量,您可以告诉 Hudson 将它们传递给 Ant。对于其他问题,您可能想要更改构建脚本。检查 Hudson 提供的控制台输出,并可能将 Ant 设置为打印详细/调试消息以更好地了解环境/文件路径。

于 2009-05-21T14:37:31.180 回答