2011-09-27 114 views
3

我即將開始編寫一個我想在OSGi容器中運行的應用程序,例如Virgo。處女座的核心平臺提供了許多我感興趣的依賴項,比如Spring框架,但我也想使用Spring Integration。 Spring Integration的jar是可以隨時使用的OSGi包,可以在Ivy存儲庫中與我一起使用,還可以使用其他許多第三方依賴項。管理OSGi包依賴關係的正確過程是什麼?

要告訴我的包依賴於OSGi容器,比如Spring集成,我需要相關的軟件包或捆綁添加到我的清單 - 我知道如何做到這一點,並瞭解如何工作的。

我想了解的是如何針對,解決,構建並最終部署可用於某種存儲庫(最好是Ivy)的第三方軟件包。在過去,我已經在兩個方面做到了這一點:

  1. 添加依賴到目標平臺,或者在這種情況下,處女座的轉庫
  2. 保持相關性的副本,我的工作區,將其導出作爲構建的一部分

這些解決方案都不具備可擴展性或特別優雅。

我有興趣使用Virgo 3.0.0或Equinox,我的開發環境是Eclipse,如果不同的OSGi容器或開發環境會讓我的生活更輕鬆,我很樂意切換。

爲了使這個晶瑩剔透,我想知道:

  1. 如何在外部資源庫開發針對OSGi包(例如束住在常青藤)?
  2. 如何構建和部署我的包及其所需的外部依賴關係?

回答

4

您可以定義一個外部處女座存儲庫指向一個常春藤回購的本地副本,如Virgo用戶指南「配置本地配置存儲庫」下所述。當處女座從Eclipse啓動時,也可以使用該存儲庫。

請注意,我們正在研究處女座3.5的p2集成,這會給你一些更多的選擇。

+0

我認爲這符合我對開發的需求,因爲我可以配置我的本地處女座安裝指向我的常春藤回購,並且當我在本地運行時,Spring Int deps會自動拉動;但是,如何構建可分發的包? - 在我的情況下,我需要假定目標安裝*不具有相同的配置存儲庫配置。 –

0

AFAIK是特定於實現的。如果您正在使用Equinox,那麼p2是您正在查找的供應系統。我會假設其他實現將有自己的方法/工具來完成類似的功能。

+0

好吧,假設我現在擁有了所有這些我想要的p2存儲庫中的依賴關係......我如何構建和部署包含該deps的功能? –