如何在自定义Hudson插件中的参数化构建页面上创建动态下拉列表?

时间:2011-02-13 22:33:44

标签: plugins hudson

我正在尝试为参数化的hudson作业实现以下功能:当用户点击“立即构建”时,他应该会看到三个下拉列表参数,即环境,服务器,端口。我希望下拉列表是动态的,即在更改环境值时,服务器列表应相应地更改,同样端口的值应根据所选服务器进行更改。

用户进行最终选择后,下拉列表中的所有三个值都将用于将单个值作为参数传递给构建作业。我坚持如何在单个参数中实现这一点并使其动态化。在我的自定义插件中,我扩展了ParameterDefinition类,在其中我有一个静态嵌套类,使用doFillXXXItems()为这三个字段扩展ParameterDescriptor类。环境下拉列表中的值将根据登录的用户名填充。如果有人能帮助我弄清楚如何使下降动态,我真的很感激。我已经尝试过ui-samples插件中的动态下拉列表框,但它在我的情况下不起作用:(

1 个答案:

答案 0 :(得分:1)

您可以继承 hudson.model.ChoiceParameterDefinition ,并覆盖其 getChoicesText 的方法。根据您的需要返回选项,在您的情况下,您可以从 Hudson.getInstance()获取环境。

下面的代码段显示了如何获取环境变量。

Hudson.getInstance().getGlobalNodeProperties()
       .get(EnvironmentVariablesNodeProperty.class).getEnvVars().get(name);