在Jenkins上的Groovy中创建@extension类?
我在jenkins中使用Groovy脚本屏幕,即在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
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