Jenkins插件开发-自定义Pipeline Snippet Generator的默认行为



以下url下有一个代码段生成器:

http://<您的詹金斯实例>作业/<你的工作>管道语法/

它将根据您在表单上输入的数据生成管道步骤片段。让我们看看libraryResource步骤,因为这将是一个很好的例子。如果我们不填写Character encoding,它将不会包含在生成的代码段中。这是我试图在自定义插件中实现的行为,但没有成功。它在我的插件中的工作方式是,在生成的代码段中,每个未设置的变量总是被转换为空,例如value: '',而不是完全省略。

我一直在查看代码,但找不到任何可以覆盖我观察到的默认行为的东西:

https://github.com/jenkinsci/workflow-cps-global-lib-plugin/blob/master/src/main/resources/org/jenkinsci/plugins/workflow/libs/ResourceStep/config.jelly

https://github.com/jenkinsci/workflow-cps-global-lib-plugin/blob/master/src/main/java/org/jenkinsci/plugins/workflow/libs/ResourceStep.java

在生成代码段时,如何强制跳过未设置的值?

通常,如果值是null,则在生成代码段的过程中会跳过该值,因此如果是ResourceStep.encoding,则在方法中将其转换为null

@DataBoundSetter public void setEncoding(String encoding) {
this.encoding = Util.fixEmptyAndTrim(encoding);
}

参见https://github.com/jenkinsci/workflow-cps-global-lib-plugin/blob/workflow-cps-global-lib-2.15/src/main/java/org/jenkinsci/plugins/workflow/libs/ResourceStep.java#L67

更多信息您可以在这里找到:https://jenkins.io/doc/developer/plugin-development/pipeline-integration/

最新更新