Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Plugins 在编写jenkins插件时,如何共享全局配置字段?_Plugins_Jenkins_Share - Fatal编程技术网

Plugins 在编写jenkins插件时,如何共享全局配置字段?

Plugins 在编写jenkins插件时,如何共享全局配置字段?,plugins,jenkins,share,Plugins,Jenkins,Share,我目前正在编写一个jenkins插件,它有多个构建器。我想在所有构建器中共享descriptor/global.jelly中的字段。我如何分享这些信息?我可以使用继承还是封装?一个好的开始是搜索Jenkins 你想要的代码是 Jenkins.getInstance().getDescriptor( MyPluginWithGlobalConfig.class ) 这将返回您想要的描述符(因为只有一个描述符实例) 下面是我在(groovy中)中使用的一个方法,它获取一个描述符,然后对其调用一个方

我目前正在编写一个jenkins插件,它有多个构建器。我想在所有构建器中共享descriptor/global.jelly中的字段。我如何分享这些信息?我可以使用继承还是封装?

一个好的开始是搜索Jenkins

你想要的代码是

Jenkins.getInstance().getDescriptor( MyPluginWithGlobalConfig.class )
这将返回您想要的描述符(因为只有一个描述符实例)

下面是我在(groovy中)中使用的一个方法,它获取一个描述符,然后对其调用一个方法

@覆盖
公共列表重建(列表){
SeleniumDynamicCapability.DescriptorImpl sdcd=Jenkins.getInstance().getDescriptor(SeleniumDynamicCapability.class)
List sc=sdcd.loadDefaultItems()
如果(sc.size()==0)
抛出(新的SeleniumException(“未检测到硒功能”))
设置元件能力(sc)
sc.each{list.add(it.toString())}
退货清单;
}

以防万一,还请注意,对于带有全局配置的插件,最好扩展专用配置,就像最近的覆盖一样。
@Override
public List<String> rebuild(List<String> list){
    SeleniumDynamicCapability.DescriptorImpl sdcd = Jenkins.getInstance().getDescriptor(SeleniumDynamicCapability.class)

    List<SeleniumCapabilityRO> sc = sdcd.loadDefaultItems()

    if (sc.size() == 0)
        throw(new SeleniumException("No selenium capabilities detected"))

    setSeleniumCapabilities(sc)

    sc.each{list.add(it.toString())}
    return list;
}