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

Jenkins plugin development - customizing default behaviour of Pipeline Snippet Generator

以下 url:

下有可用的代码段生成器

http://<your-jenkins-instance>/job/<your-job>/pipeline-syntax/

它将根据您在表单中输入的数据生成管道步骤片段。让我们看看 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/