2017-03-31 123 views
2

我正在为两个项目的Jenkins管道工作。我通过冗余和电子邮件构建了一些定制的配置警报消息。我们希望我的代码可以用于我的项目以及其他几个项目。所以我想让它成为一个小小的库,以便其他人在每次他们加入Jenkins管道工时都不需要问我。我在考虑使用@Library()的共享库供其他人使用,如the docs中所述。Jenkins管道共享库vs插件

但是,由于我的lib依赖于松散和电子邮件插件的存在,所以当这些插件没有安装时它将不可用。

我的问题是:有没有办法声明在管道共享库的依赖或我必须让jenkins插件来解决这个问题?

回答

2

据我所知,现在没有办法声明对插件的依赖关系(或Jenkins版本)。相反,你可以做的是增加一个检查插件,并给予适当的错误库的用户:

if (Jenkins.getInstance().getPluginManager().getPlugin("Slack+Plugin") == null) { 
    error "This shared library function requires "Slack plugin!" 
} 

将这个在您的共享库脚本开始,该插件的任何用途之前。但是请注意,如果您需要从插件导入类(因为导入首先在groovy文件中),这会变得棘手。在这种情况下你所做的是制作两个脚本,第一个脚本有检查并且是用户调用的脚本,第二个脚本包含所有的逻辑和导入,一旦检查通过,第一个脚本将调用它。

+0

是的,我想到目前为止,我会去与这个有限的共享库方法。开始很容易,我可能需要与其他jenkins打交道,但从现在开始很长一段时间。谢谢。 –