osgi - 管理 OSGi 包依赖项的正确过程是什么?

标签 osgi dependency-management eclipse-virgo

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

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

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

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

这些解决方案似乎都没有可扩展性或特别优雅。

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

为了使这一点变得清晰,我想知道:

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

最佳答案

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

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

关于osgi - 管理 OSGi 包依赖项的正确过程是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7575048/

相关文章:

Eclipse RCP 翻译工具

java - Spring 依赖

java - 蓝图服务列表 : Wait for all services

java - 使用eclipse开发插件

java - 使用来自 Maven 的内联 jar 文件构建 osgi 包

OCaml - 是否可以在沙丘中定义外部(系统)依赖项?

clojure - 如何从 git 存储库加载最新的 Clojure 库

java - Virgo 的应用程序部署程序 API 在取消部署时崩溃

tomcat - Eclipse Virgo 在 EC2 上无故关闭

java - NoClassDefFoundError : com/sun/xml/internal/bind/DatatypeConverterImpl using knopfletfish