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

Plugins 如何在自定义Hudson插件的参数化构建页面上创建动态下拉列表?,plugins,hudson,Plugins,Hudson,我试图为参数化的hudson作业实现以下目标:当用户单击“立即构建”时,应向其显示三个下拉列表参数,即环境、服务器、端口。我希望下拉列表是动态的,即在更改环境值时,服务器列表应相应更改,同样,端口值应根据所选服务器而更改 一旦用户做出最终选择,下拉列表中的所有三个值都将用于生成单个值,作为参数传递给构建作业。我被困在如何实现这一点在一个单一的参数,使其动态。在我的自定义插件中,我扩展了ParameterDefinition类,其中有一个静态嵌套类,使用doFillXXXItems()为这三个字段

我试图为参数化的hudson作业实现以下目标:当用户单击“立即构建”时,应向其显示三个下拉列表参数,即环境、服务器、端口。我希望下拉列表是动态的,即在更改环境值时,服务器列表应相应更改,同样,端口值应根据所选服务器而更改


一旦用户做出最终选择,下拉列表中的所有三个值都将用于生成单个值,作为参数传递给构建作业。我被困在如何实现这一点在一个单一的参数,使其动态。在我的自定义插件中,我扩展了ParameterDefinition类,其中有一个静态嵌套类,使用doFillXXXItems()为这三个字段扩展ParameterDescriptor类。“环境”下拉列表中的值是根据登录的用户名填充的。如果有人能帮我弄清楚如何使下拉列表充满活力,我将不胜感激。我已经尝试过ui samples插件中的动态下拉列表框,但在我的情况下不起作用:(

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

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

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