我正在使用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中的默认值绑定回全局配置?
答案 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