3

我即将开始开发一个我想在 OSGi 容器中运行的应用程序,比如Virgo。Virgo 的核心平台提供了许多我感兴趣的依赖项,例如 Spring Framework,但我也想使用 Spring Integration。Spring Integration 的 jars 是现成的 OSGi 包,我可以在 Ivy 存储库中与许多其他第三方依赖项一起使用。

为了告诉 OSGi 容器我的包依赖于 Spring Integration,我需要将相关的包或包添加到我的清单中——我知道如何执行此操作并了解其工作原理。

我想了解的是如何针对某种存储库(最好是 Ivy)中提供的第三方包进行开发、解决、构建和最终部署。在过去,我通过两种方式实现了这一点:

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

这些解决方案似乎都不是可扩展的或特别优雅的。

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

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

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

2 回答 2

4

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

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

于 2011-09-28T06:58:18.453 回答
0

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

于 2011-09-27T20:38:11.897 回答