为什么数字字段的默认属性不适用于Jenkins果冻配置?

时间:2015-06-18 00:36:01

标签: jenkins jenkins-plugins jelly

我正在使用Jenkins插件,我们使用Spring的RestTemplate调用远程服务。要配置超时值,我在全局配置中使用global.jelly文件为Jenkins插件设置一些字段,使用数字字段,如下所示:

<f:entry title="Read Timeout" field="readTimeout" description="Read timeout in ms.">
    <f:number default="3000"/>
</f:entry>

现在,这可以保存值并检索值没有问题,因此看起来我的BuildStepDescriptor正确设置了所有内容。但是,当我第一次将更新安装到Jenkins实例时,而不是像我期望的那样默认在字段中获得3000,而是我得到0.这对于我正在使用的所有字段都是相同的。

鉴于Jelly标记引用库说这个属性应该是默认值,为什么我第一次安装插件时会看到0?

是否需要将更多Java代码添加到我的插件中以将Jelly中的默认值绑定回全局配置?

1 个答案:

答案 0 :(得分:0)

我认为当Jenkins启动时,它会获取插件配置XML并且无法找到值并将其设置为默认值0。

我过去通过在描述符中设置默认值(在groovy中)来解决这个问题,然后这个值将在第一次保存到全局配置中,并且如果用户从不访问配置页面也可用。< / p>

@Extension
static class DescriptorImpl extends AxisDescriptor {
    final String displayName = 'Selenium Capability Axis'

    String server = 'http://localhost:4444'

    Boolean sauceLabs = false
    String sauceLabsName
    Secret sauceLabsPwd
    String sauceLabsAPIURL = 
           'http://saucelabs.com/rest/v1/info/platforms/webdriver'
    String sauceLabsURL = 'http://ondemand.saucelabs.com:80'

来自here