以下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/