2011-09-27 112 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的功能? –