2011-02-13 28 views
6

我想爲參數化的哈德森作業實現以下目標:當用戶點擊「立即構建」時,應該提供三個下拉列表參數,即環境,服務器,端口。我希望下降到動態,即改變環境的價值,服務器列表應該相應地改變,並且類似地,端口的值應該根據所選的服務器而改變。如何在自定義哈德森插件的參數化構建頁上製作動態下拉列表?

一旦用戶進行了最終選擇,下拉菜單中的所有三個值都將用於將單個值作爲參數傳遞給構建作業。我被困在如何在單個參數中實現這一點,並使其動態化。在我的自定義插件中,我擴展了ParameterDefinition類,並且在其中我有一個靜態嵌套類,它們爲這三個字段使用doFillXXXItems()擴展了ParameterDescriptor類。環境下拉列表中的值根據登錄的用戶名填充。如果有人能幫我弄清楚如何使動態下降,我將非常感激。我已經嘗試了動態下拉列表框UI的樣品中的插件,但它不是我的情況:(

回答

1

工作你可以繼承hudson.model.ChoiceParameterDefinition,並覆蓋其getChoicesText的方法。返回的選項基於任何你想要的,你的情況,你可以從Hudson.getInstance()獲得環境

下面的片段中顯示瞭如何獲取環境變量。

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