我正在将我的spring-java项目移动到osgi .
我有一些依赖项,在spring ebr repo或maven repo中不能作为bundle使用 . 处理它们的最佳方法是什么?
我能想到的选择是
-
创建一个本地maven repo,将jar转换为bundle并使用它们(这将变得困难,传递依赖和jar的更新)
-
将它们添加到捆绑类路径中(我的捆绑包变得庞大,升级后管理这些 jar 并不容易)
-
将所有这些jar保留在另一个bundle的类路径中,导出包并使用它们(再次管理jar很困难)
是否有其他建议或上述哪些建议?
2 回答
最明智的方法是你的第一个选择,因为这是'OSGi方式' . 这样,您可以更好地模块化应用程序并在不同的客户端软件包中共享相同的软件包 . 您还可以从OSGi中固有的版本管理中受益 .
您不一定要使用Maven从JAR创建捆绑包,尽管这可能会有所帮助 . 您还可以使用bnd将JAR包装为OSGi包 .
如果你使用apache karaf,可以选择在maven repo中捆绑任何jar . 您只需使用uri install -s wrap:mvn:groupId / artifactId / version . 这将使用bnd将jar与默认设置捆绑在一起并安装它 . 这适用于例如oracle jdbc驱动程序 .