1

我正在将我的 spring-java 项目移动到 osgi。

我有一些依赖项在 spring ebr repo 或 maven repo 中不能作为捆绑包提供。处理它们的最佳方法是什么?

我能想到的选项是

  1. 创建一个本地 maven 存储库,将 jar 转换为捆绑包并使用它们(这对于 jar 的传递依赖和更新将变得困难)
  2. 将它们添加到包类路径中(我的包变得很大,并且升级管理这些 jar 并不容易)
  3. 将所有此类 jar 保存在另一个包的类路径中,导出包并使用它们(再次管理 jar 很困难)

任何其他建议或以上哪个是可取的?

4

2 回答 2

4

最明智的方式是您的第一个选择,因为那是“OSGi 方式”。通过这种方式,您可以更好地模块化您的应用程序并在不同的客户端包中共享相同的包。您还可以从 OSGi 中固有的版本管理中受益。

您不一定必须使用 Maven 从 JAR 创建包,尽管这可能会有所帮助。您还可以使用 bnd 将 JAR 包装为 OSGi 包。

于 2012-09-18T15:21:06.660 回答
0

如果您使用 apache karaf,则可以选择即时捆绑来自 maven repo 的任何 jar。您只需使用 uri install -s wrap:mvn:groupId/artifactId/version。这将使用 bnd 将 jar 与默认设置捆绑并安装它。例如,这适用于 oracle jdbc 驱动程序。

于 2012-09-19T06:43:27.140 回答