0

我正在将 Jelly 脚本移植到 Groovy,但我被困在实现标签的 Jelly 脚本中的一行代码上:

<j:new var="builder" classLoader="${it.class.classLoader}" className="hudson.plugins.emailext.plugins.ContentBuilder"/>

我知道这是在加载一个类,但我无法让 Groovy 做同样的事情。我使用我找到的各种类加载器示例尝试了几种不同的方法,但我总是得到错误,通常是“无法解析类”之类的错误。一个问题是我不知道是否需要使用文件系统路径:

C:\Jenkins\plugins\email-ext\WEB-INF\classes\hudson\plugins\emailext\ContentBuilder.class

或者,如果我需要使用 URL(而且我不知道文件的 URL,也不知道如果我知道 URL,Jenkins 是否会让我访问文件)。

所以问题是我如何实例化 hudson.plugins.emailext.plugins

PS 旧的 Jelly 脚本和新的 Groovy 脚本都被用作Jenkins Email-Ext 插件的电子邮件模板。Jelly 脚本有效,但我希望它在 Groovy 中。

4

1 回答 1

0

为什么我总是在发布问题后立即弄清楚?

    ClassLoader cl = it.class.getClassLoader()
    def builder = cl.loadClass("hudson.plugins.emailext.plugins.ContentBuilder", true).newInstance()
于 2011-12-30T23:45:57.323 回答