带有嵌套参数的 Jenkins 插件描述符

Jenkins plugin descriptor with nested parameters

我正在为其他人的管道步骤 jenkins 插件编写描述符。大多数步骤都很简单,例如

mySimpleStep(param1: value1, param2: value2)

但是其中一个步骤需要一个参数,它是两个其他值的映射,因此实际的调用语法如下:

myOtherStep(param1: value1, param2: [sub1: value2, sub2: value3])

我无法理解如何在 config.jelly 文件中为步骤 and/or 指定参数更新实际 Step class 以便调用语法是正确创建。我该怎么做?

param2 class 确实有自己的 @DataBoundConstructor 如果重要的话)

请注意,这是别人的插件,我无法更改实际插件。

差点放弃后,我在查看 Microsoft Azure Storage 插件的源代码时偶然发现了答案。这是我需要执行的步骤。

  1. 确保param2的class实现了Step,并在其中添加Description内class。它还需要有一个 @DataBoundConstructor

  2. 使用自己的 config.jellyhelp-*.html 文件为资源中的 class 创建一个单独的描述符目录

  3. myOtherStep 的 config.jelly 改成这样:

    <f:section title="General">
        <f:entry field="value1" title="First param" description="Simple parameter">
            <f:textbox/>
        </f:entry>
    
        <f:property field="value2">
            <st:include page="config.jelly"/>
        </f:property>
    
    </f:section>
    

现在将包含复杂参数的 config.jelly class - 一切都按预期工作。