0

我的项目使用 ANT 构建系统。目前,我正在通过 shell 命令为我的项目提供构建。假设当我从 cmd 提示符给出“ant dev deploy”(参见下图以通过 cmd 提示符成功构建)时,构建开始并在其之间停止以供用户确认。在下图中,我突出显示了传递给“dev”的运行时值,它作为确认变量传递,然后根据传递的值继续构建。这就是它应该的样子,并且到目前为止它工作正常。

![通过 cmd 提示符成功构建 ANT][1] 目前我正在通过 hudson 自动执行此构建。我在 hudson 的 Build 属性的目标中给出了值“ant dev deploy”。但是,现在我不知道如何配置以在构建进度之间获取值“dev”。在我的试验中,我得到了错误。下面,我给出了哈德逊的日志。

无论如何我可以在运行时传递值。?

抱歉,我无法发布图片。如有问题可以澄清。

哎呀!您的问题无法提交,因为:

•我们很抱歉,但作为垃圾邮件预防机制,不允许新用户发布图像。赚取超过 10 名声望发布图片

4

1 回答 1

1

您不能在构建过程中将值传递给 Hudson。您需要在触发构建时提供它。Hudson 不是交互式的,因此您当前流程中需要用户在中途提示的任何内容都需要重新设计。

您的所有用户提示都需要在构建开始时通过构建参数完成。在作业配置中,勾选This build is parameterized。如果要限制可能的值,最好使用“Choice”参数。给它一个名字,例如CHOICE1,给它一个可能的选择列表。当手动触发构建时,用户可以从下拉列表中选择一个选项,然后开始构建。请注意,这不适用于自动触发的构建。

接下来,您需要将此值传递给您的 ANT 脚本。在您的Invoke Ant构建步骤中,单击“高级”按钮,然后在“属性”下,您可以将变量传递给您的 ANT 脚本:

antScriptVar=$CHOICE1

上面$CHOICE1是对 Hudson 构建参数的引用,它将包含用户在开始构建时从下拉列表中选择的值。这antScriptVar是您在 ANT 脚本中的变量,它将具有此值。您可以在 ANT 脚本中定义空变量

<property name="antScriptVar" value="" />

当 Hudson 触发 ANT 脚本时,它将使用构建变量填充此变量。从那时起,像使用 ANT 中的任何其他变量一样使用它

于 2013-01-21T16:53:35.090 回答