wei*_*ang 4 plugins shared-libraries jenkins jenkins-pipeline
我正在为两个项目研究 Jenkins 管道。我通过 slack 和电子邮件构建了一些自定义配置警报消息。我们希望我的代码可以用于我的项目以及其他几个项目。所以我想把它做成一个小库,这样其他人就不需要每次在 Jenkins 管道工作上问我。我正在考虑使用共享库@Library()供其他人使用,如文档中所述。
但是,由于我的 lib 依赖于 slack 和 emails 插件的存在,因此如果未安装这些插件,它将无法使用。
我的问题是:有没有办法在管道共享库中声明依赖项,或者我必须制作 jenkins 插件来解决这个问题?
据我所知,现在无法声明对插件的依赖(或 Jenkins 的版本)。相反,您可以做的是为插件添加检查并为您的库用户提供适当的错误:
if (Jenkins.getInstance().getPluginManager().getPlugin("Slack+Plugin") == null) {
error "This shared library function requires "Slack plugin!"
}
Run Code Online (Sandbox Code Playgroud)
在使用插件之前,将其放在共享库脚本的开头。但请注意,如果您需要从插件导入类,这会变得很棘手(因为导入在 groovy 文件中排在第一位)。在这种情况下,您要做的是制作两个脚本,第一个脚本具有检查功能并且是用户调用的脚本,第二个脚本包含所有逻辑和导入,一旦检查通过就会由第一个脚本调用。
| 归档时间: |
|
| 查看次数: |
1434 次 |
| 最近记录: |