【问题标题】:Jenkins plugin checkbox: GUI value differs from config.xmlJenkins 插件复选框:GUI 值与 config.xml 不同
【发布时间】:2015-10-01 13:13:58
【问题描述】:

我正在对 Jenkins 插件 (https://wiki.jenkins-ci.org/display/JENKINS/Stash+pullrequest+builder+plugin) 进行更改,因为我想为其添加几个选项。

但是,在 config.jelly 中添加了两个新复选框后,它们似乎无法通过 GUI 在作业配置中正常工作。

config.jelly:

<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form">
  ...
  <f:advanced>
  ...
    <f:entry title="Report build started to Stash?" field="reportBuildStartedToStash">
      <f:checkbox default="true"/>
    </f:entry>
    <f:entry title="Report build result to Stash?" field="reportBuildStatusToStash">
      <f:checkbox default="true"/>
  </f:advanced>
</j:jelly>

如果我将此插件添加到这样的工作中:

然后这两个复选框按预期默认为“true”。这反映在 config.xml 中:

  <triggers>
    <stashpullrequestbuilder.stashpullrequestbuilder.StashBuildTrigger plugin="stash-pullrequest-builder@1.3.1-SNAPSHOT">
      ...
      <reportBuildStartedToStash>true</reportBuildStartedToStash>
      <reportBuildStatusToStash>true</reportBuildStatusToStash>
    </stashpullrequestbuilder.stashpullrequestbuilder.StashBuildTrigger>
  </triggers>

但是,如果我取消选中这些复选框,保存更改并重新加载作业配置页面,这些复选框将再次被选中。

这可能是我的 .jelly 配置有问题吗?我不明白如何或为什么。

供参考,我的分支在这里:https://github.com/blaffoy/stash-pullrequest-builder-plugin/tree/optional-messages-to-stash

这个问题似乎与提出的here 相同,但建议的解决方案并不能解决我的问题。即用&lt;f:checkbox/&gt;替换&lt;f:checkbox default="true"/&gt;

【问题讨论】:

标签: jenkins jenkins-plugins jelly


【解决方案1】:

这将通过在 StashBuildTrigger.java 中的 getter 方法前加上“is”来实现,例如

public boolean isReportBuildStartedToStash() 
public boolean isDeleteBuildStartedToStash()
public boolean isReportBuildStatusToStash()

我认为这也适用于“get”前缀,但我还没有测试过。根据jenkins plugin doc

为配置字段定义 getter,或创建字段 “公开决赛”。这允许 Jelly 脚本读取值 填充配置页面。

需要注意的几点:“get”被自动从 方法名,剩下的方法名的第一个字母是 小写。我建议使用 Java 命名约定 方法(例如,使用 'get' 开始 getter 并使用 CamelCase),以便 果冻总能找到方法。

例如java naming conventions:

对 getter 和 setter 方法使用前缀 get 和 set。 ...如果 方法返回一个布尔值,使用 is 或 has 作为前缀 方法名。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-25
    • 1970-01-01
    • 2014-05-05
    • 2012-04-19
    • 1970-01-01
    • 1970-01-01
    • 2014-05-09
    • 1970-01-01
    相关资源
    最近更新 更多