2017-03-31 119 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打交道,但從現在開始很長一段時間。謝謝。 –