在哪里可以找到并安装org.osgi.framework软件包?

时间:2019-04-24 11:41:44

标签: java osgi apache-karaf apache-felix

我正在尝试遵循本教程:

apache felix tutorial #1

但是我不了解目录结构。我在哪里放置Activator.java文件?相对于Activator.java文件,我应该在哪里放置MANIFEST.MF?

在本教程中,当我尝试编译Activator.java文件时,出现了org.osgi.framework不存在的错误。在哪里可以得到org.osgi.framework软件包,应该在哪里安装? javac build命令如何知道如何找到org.osgi.framework包?

我正在寻找一个讲解什么是Karaf / Felix框架以及如何使简单示例工作的教程。

我也尝试遵循本教程:http://kevinboone.net/osgitest.html

,但它已过时,并且Tick捆绑包步骤的构建失败。具体来说,该命令:

javac -d target/tick/classes -classpath /path/to/karaf/lib/karaf.jar src/net/kevinboone/osgitest/tick/*.java

这是没有意义的,因为在我的karaf安装中没有从karaf download site下载的文件“ karaf.jar”。

清单文件中有以下行:

Import-Package: org.osgi.framework

但是karaf安装中似乎不存在此软件包?

1 个答案:

答案 0 :(得分:4)

felix教程太过时了。

如果您想学习OSGi,我可以推荐Apache Karaf demotutorials以及enroute示例。

仍然要回答这个问题。您可以在osgi核心规范jar和felix jar中找到org.osgi.framework软件包。因此,在编译过程中,其中一个jar必须位于类路径上。

您不应手动创建清单。而是使用像maven-bundle-plugin这样的插件来创建它。然后,您可以将Activator放置在所需的任何位置,只需要给该工具一个提示即可。

不要在Activator和其他低级OSGi API上投入太多时间。它们不是您应该编写代码的方式。相反,请看一下声明式服务。它允许使用注释来连接您的班级,从而解决了困难的低级任务。

本教程的问题在于它们使用了诸如javac之类的底层命令。如今,您应该始终使用Maven或Gradle之类的构建工具,并在其中声明依赖项。我链接的教程和示例都提供了不错的构建,您也可以将它们用于以后的生产代码。