2014-12-22 60 views
1

我正在開發Jenkins的插件,它依賴於另一個插件(特別是MultiJob插件,但它可以是任何其他插件)。獲取Jenkins插件依賴項自動安裝

顯然,在POM中找到依賴關係,所以我可以實際使用它的類。

問題:如果我試圖在Jenkins中安裝我的插件,但未找到依賴關係,Jenkins不會自動安裝它,並且在第一次使用時,我的插件當然會引發異常NoClassDefFoundError。

問題:我可以讓Jenkins安裝我的依賴關係作爲先決條件,如果是,如何?

注意:我確實發現其他插件會以某種方式導致依賴關係被安裝(例如,Git插件會在安裝過程中安裝GitClient)。

在此先感謝。

+0

你是如何安裝它的?據推測,所有的罐子/ hpis都被發現編譯它 – KeepCalmAndCarryOn

回答

0

這已經有一段時間,因爲我已經提出了一個問題,但如果有人將尋找類似的東西,這裏就是我終於想出了:

由於依賴類僅在需要的情況下,他們真的在那裏,我決定使用Java的懶惰鏈接行爲,並實際上只在需要時引用相關的類。 所以實際上,製作了一個擁有感興趣的類名列表的工廠,並且每次我需要處理一些對象時,我都會檢查它是否與此列表相對應。如果匹配 - 類將被加載,因此可以啓動鏈接/啓動邏輯。

最後一個,如果您打算使用這種模式,請不要忘記在您的pom.xml中將這些依賴插件標記爲可選