我在jenkins中使用Groovy脚本屏幕,即http://localhost:8080/jenkins/script
,这非常棒。我写了一个简单的扩展名:
jenkins = jenkins.model.Jenkins.getInstance()
@hudson.Extension
public class MyGroovyListener extends hudson.slaves.ComputerListener {
public void onOnline( computer, taskListener ) {
System.out.println("groovy onOnline " + computer + " " + taskListener );
}
}
现在我希望以某种方式注册扩展程序。我试过了:
jenkins.refreshExtensions()
......但没有快乐。
如何从groovy脚本网页注册扩展类?
答案 0 :(得分:0)
你需要做更多的事情来构建一个Jenkins插件
您可以在groovy中构建它们,但它需要位于HPI(专用JAR文件)中 - 您可以通过插件屏幕加载它。你需要gradle,gent和Kiyotaka建造的例子。
https://github.com/kiy0taka/jenkins-plugin.gent
gent --name=<proj> kiy0taka/jenkins-plugin
cd <proj>
./gradlew server
gradlew步骤将运行已加载插件的本地Jenkins服务器
您需要为配置和构建设计步骤构建表单组件 并处理序列化配置数据
答案 1 :(得分:0)
在Google Groups post by the same poster中,这可能回答得更好,尽管现在可能已经过时了。提到的问题GROOVY-3361仍然存在,并且似乎限制了Groovy类中注释的处理和扫描方式。
真遗憾,您无法使用Jenkins中的Groovy代码针对扩展点注册事物。
我仍然想知道自定义hudson.ExtensionFinder
是否有可能,它本身必须用Java编写。但是我没有时间进行那么深入的研究。