对于Jenkins,我有一个Ruby plugin我想将全局配置添加到。#Jenkins:Ruby插件的全局配置
的配置显示詹金斯全局配置页面:
目前,我已经成功地通过使用自定义描述符保存全局配置。 试图与父类(Java.hudson.model.Descriptor)进行序列化来实现,如:
class GitlabWebHookRootActionDescriptor < Jenkins::Model::DefaultDescriptor
attr_reader :conf_param
def configure(req, form)
req.bindJSON(self, form)
save
true
end
end
这个解决方案保存委托给父类。 这样做的问题是:
---- Debugging information ----
message : Could not call org.jruby.RubyClass.writeObject()
cause-exception : java.io.IOException
cause-message : can not serialize singleton object
-------------------------------
无法弄清楚什么是单身,所以结束了写我自己的方法来保存和加载配置文件。你可以看到代码here。
这绝对设法将数据保存到一个XML文件,并从中读取时,詹金斯开始:
// on startup
INFO: =========== GitlabWebHookRootActionDescriptor initialize ===================
INFO: conf_param: aloha
// on save
INFO: =========== GitlabWebHookRootActionDescriptor configure ===================
INFO: form: {"conf_param"=>"juku"}
但是,我不能要在詹金斯配置页面或显示保存的配置可以从根本行动本身获得。
我已经将描述符添加到根操作:describe_as Java.hudson.model.Descriptor, :with => GitlabWebHookRootActionDescriptor
但没有成功。 我可以在日志中看到root操作在描述符之前加载,不知道是否是问题所在。
有没有人有关于如何使用根操作描述符中保存的配置的想法?答案