管理OSGi捆绑依赖项的正确程序是什么?

时间:2011-09-27 20:09:09

标签: osgi dependency-management eclipse-virgo

我即将开始处理我想在OSGi容器中运行的应用程序,例如Virgo。 Virgo的核心平台提供了许多我感兴趣的依赖项,比如Spring Framework,但我也想使用Spring Integration。 Spring Integration的jar是随时可用的OSGi包,我可以在常春藤存储库中使用许多其他第三方依赖项。

要告诉OSGi容器我的捆绑包依赖于Spring Integration,我需要将相关的包或包添加到我的Manifest中 - 我知道如何做到这一点并理解它是如何工作的。

我想了解的是如何开发,解决,构建和最终部署在某种存储库(最好是Ivy)中可用的第三方软件包。在过去,我已经通过两种方式完成了这项工作:

  1. 将依赖项添加到目标平台,或者在本例中为Virgo ext存储库
  2. 在我的工作区中保留依赖项的副本,将其作为构建
  3. 的一部分导出

    这些解决方案似乎都不具备可扩展性或特别优雅。

    我对使用Virgo 3.0.0或Equinox感兴趣,我的开发环境是Eclipse,如果不同的OSGi容器或开发环境会让我的生活更轻松,我很乐意转换。

    为了清楚这一点,我想知道:

    1. 如何针对外部存储库中的OSGi包进行开发(例如,常春藤中的捆绑包)?
    2. 如何构建和部署我的捆绑包及其所需的外部依赖项?

2 个答案:

答案 0 :(得分:4)

您可以定义外部 Virgo存储库,以指向Ivy仓库的本地副本,如“配置本地配置存储库”下的Virgo用户指南中所述。当从Eclipse启动Virgo时,也可以使用此存储库。

请注意,我们正在为Virgo 3.5进行p2集成,这将为您提供更多选择。

答案 1 :(得分:0)

特定于实施的AFAIK。如果您使用的是Equinox,那么p2是您正在寻找的配置系统。我认为其他实现会有自己的方法/工具来完成类似的功能。