首页 文章

使用主动选择反应参考参数构建项目

提问于
浏览
1

我是jenkins和groovy的新手,我正在尝试创建自己的配置,这允许我使用各种参数构建我的项目 . 为实现这一点,我使用Active Choices Reactive Reference Parameter . 作为选择类型,我设置“格式化HTML” . 它看起来完全符合我的要求,但不幸的是,没有什么,我无法返回参数来构建 .

这是我的groovy脚本:

if(useDefaultValues.equals("YES")) {
    return "defaultName"
 } else {
    inputBox = "<input name='name' class='setting-input' type='text'>"
    return inputBox
 }

This is how my configuration looks

Build with default parameters

Build with other parameters

有人可以帮我这个吗?

2 回答

  • 0

    将Groovy脚本更新为以下内容:

    def defaultName = "default name"
    
    if (useDefaultValues.equals("YES")) {
        return "<b>${defaultName}</b><input type=\"hidden\" name=\"value\" value=\"${defaultName}\" />"
     }
    
    return "<input name=\"value\" class=\"setting-input\" type=\"text\">"
    

    输入字段使用名称 value 非常重要 - 它不会更改您的参数名称,如果您将其命名为 name ,您将能够以 $name (例如,如果您使用Groovy)访问它 .

    将默认值作为隐藏输入字段传递也很重要,否则不会设置参数值 . 这个隐藏的输入也必须使用名称 value .

    但是HTML格式的输入参数有一个奇怪的问题 - 它总是在参数值的末尾添加 , . 所以例如,如果我传递 lorem ipsum ,当我用参数 $name 读取它时,我将得到 lorem ipsum, . 看起来它将它视为多个参数或其他东西 . 要从参数中提取干净值,您可以执行类似(Groovy代码)的操作:

    name.split(',').first()
    
  • 1
    def defaultName = "default name"
    if (useDefaultValues.equals("YES")) {
        return "<input type=\"text\" name=\"value\" value=\"${defaultName}\" />"
    }
    return "<input name=\"value\" type=\"text\">"
    

    检查"Omit value field"修复了逗号问题 . (comma issue

相关问题