我目前正在学习如何使用 OSGi,并且有一个小问题,我似乎无法在 Google 上找到答案。
我正在尝试为我的移动应用程序构建一个后端,该后端将连接到多个下游节点。目前,该后端最初仅支持我的移动应用程序,但我计划将我的门户网站转变为也使用它。
看看 OSGi 如何允许我将代码模块化为多个包,这就是我的想法:
Backend
|--- osgi-mobile
|--- osgi-webportal
|--- osgi-downstreamnode1
|--- osgi-downstreamnode2
我的问题在于使用/消费前端 bundle 中下游节点 bundle 的服务(例如,osgi-mobile使用/消费来自osgi-downstreamnode1的服务)。
我目前正在 Eclipse Mars 中构建它们,并且缺少将整个 osgi-downstreamnode1 包打包到 JAR 中,并将其导入到 osgi-mobile 包中,我似乎无法弄清楚如何在 Eclipse 中引用这些包,以及如何让 osgi-mobile 包在运行时调用其他包。
最佳答案
您需要在开发时就考虑服务。 hotzst 引用的教程应该有所帮助。打包的基础是为每个 eclipse 项目创建一个包。如何将它们打包在一起取决于您想要部署到的位置。
我猜您当前使用 eclipse PDE 透视图来开发您的应用程序。我不会推荐这个。如果您知道自己不开发 Eclipse RCP 应用程序,那么我会考虑使用普通 Eclipse + maven 或 Bndtools。我有很多tutorials for developing in plain eclipse and deploy into Apache Karaf 。对于 bndtools,请参阅 their tutorials .
无论如何,你应该期待一个相当长的学习曲线。所以有些书可能会有所帮助,例如 OSGi in practice或Apache Karaf Cookbook .
关于java - 在 Eclipse 中使用多个 OSGi 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32930307/