带有嵌套参数的 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 插件的源代码时偶然发现了答案。这是我需要执行的步骤。
确保param2
的class实现了Step
,并在其中添加Description
内class。它还需要有一个 @DataBoundConstructor
使用自己的 config.jelly
和 help-*.html
文件为资源中的 class 创建一个单独的描述符目录
将 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 - 一切都按预期工作。
我正在为其他人的管道步骤 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 插件的源代码时偶然发现了答案。这是我需要执行的步骤。
确保
param2
的class实现了Step
,并在其中添加Description
内class。它还需要有一个@DataBoundConstructor
使用自己的
config.jelly
和help-*.html
文件为资源中的 class 创建一个单独的描述符目录将
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 - 一切都按预期工作。