在Jenkins上的Groovy中创建@extension类?

在Jenkins上的Groovy中创建@extension类?,groovy,jenkins,classloader,jenkins-plugins,Groovy,Jenkins,Classloader,Jenkins Plugins,我在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, t

我在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脚本网页注册扩展类?

您需要做更多的工作来构建Jenkins插件

您可以在groovy中构建它们,但它需要在HPI(专用JAR文件)中—您可以通过插件屏幕加载该文件。你将需要gradle、gent和清高所创建的示例

gent--name=kiy0taka/jenkins插件
光盘
/gradlew服务器
gradlew步骤将运行本地Jenkins服务器,并加载插件

当您需要为配置和构建设计步骤构建表单组件时,还有更多
并处理序列化配置数据

这在中得到了更好的回答,尽管它现在可能已经过时了。上述问题仍然存在,并且似乎限制了Groovy类中如何处理和扫描注释

在Jenkins中不能使用Groovy代码针对扩展点注册东西,这真是太遗憾了


我仍然想知道是否可以使用自定义的
hudson.ExtensionFinder
,它本身必须用Java编写。但是我没有时间去挖掘那么多。

我没有尝试构建插件,至少在Groovy中没有。我正在使用Groovy对代码进行原型化,然后在我的实际Java插件中使用。使用Groovy是尝试各种扩展的一种方式。至少,如果有办法将groovy类注册为扩展,希望如此?
gent --name=<proj> kiy0taka/jenkins-plugin
cd <proj>
./gradlew server