获取自动安装的Jenkins插件依赖项

时间:2014-12-22 14:42:41

标签: plugins jenkins dependencies jenkins-plugins

我正在开发Jenkins的插件,它依赖于另一个插件(特别是MultiJob插件,但当然可以是任何其他插件)。

显然,依赖关系是在POM中找到的,所以我实际上可以使用它的类。

问题:如果我试图在Jenkins中安装我的插件,在其中找不到依赖项,Jenkins不会自动安装它,并且在第一次使用时,我的插件会抛出异常NoClassDefFoundError,当然。

问题:我可以让Jenkins安装我的依赖项作为先决条件,如果是,那怎么办?

注意:我确实看到其他插件以某种方式导致安装依赖项(例如Git插件在安装期间安装了GitClient)。

提前致谢。

1 个答案:

答案 0 :(得分:0)

自从我提出这个问题以来已经有一段时间了,但是如果有人会寻找类似的东西,这就是我最终想出的:

由于依赖类仅在它们确实存在的情况下才需要,我决定使用Java的懒惰链接行为,并且实际上仅在需要时引用相关类。 所以实际上,制作了一个工厂,它有一个感兴趣的类名列表,每次我需要处理一些对象时,我都要根据这个列表检查它的类。如果匹配 - 加载类,因此可以初始化链接/启动逻辑。

最后一个,如果您打算使用这样的模式,请不要忘记在pom.xml中将这些依赖插件签名为可选