1

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

4

2 回答 2

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 服务器

您还需要为配置和构建设计步骤构建表单组件以及处理序列化配置数据

于 2013-07-23T10:37:38.213 回答
0

虽然现在可能已经过时,但同一张海报在 Google Groups 帖子中对此的回答更好。提到的问题GROOVY-3361仍然存在,并且似乎限制了如何在 Groovy 类中处理和扫描注释。

你不能在 Jenkins 中使用 Groovy 代码注册扩展点,这真是太遗憾了。

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

于 2018-11-07T16:09:37.347 回答