java - 在 Eclipse 中使用多个 OSGi 包

标签 java eclipse osgi osgi-bundle

我目前正在学习如何使用 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 practiceApache Karaf Cookbook .

关于java - 在 Eclipse 中使用多个 OSGi 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32930307/

相关文章:

java - apache james邮件服务器发送电子邮件

java - 将带有通配符泛型的集合转移到 Java 中的列表

java - 链接非maven项目的maven依赖

java - 如何从 AetherRepository 迁移到 MavenBndRepository?

java - 使用 Maven、OSGi 和 Bndtools

java - 当方法有参数时,OSGi @Activate 会中断。错误: activate method not found; Component will fail

java - 如何返回数组的特定元素?

Java程序运行一段时间后变慢

java - Android 应用程序不断崩溃 [Eclipse]

android - 从 Eclipse (ADT) 导出 APK 静默崩溃