最简单的方法来构建一个Karaf插件

时间:2013-07-31 19:40:59

标签: java maven apache-karaf

我之前拥有Java编码经验,但对整个多样化Java生态系统的了解并不多。我现在的任务是为一个庞大的系统开发一个小型的Karaf插件。这个系统使用了无数的Java好东西:Camel,Karaf,Maven等等。我有一些示例代码,我需要做一些小的更改和重建。

示例是一个Maven项目(至少有一个pom.xml),它最终应该是一个Karaf插件。对示例进行更改并重新构建插件的最简单方法是什么?我以前从未使用过上述任何一项,而且变化很小,因此安装和配置很多东西似乎有点矫枉过正。

从哪里开始? :)

2 个答案:

答案 0 :(得分:3)

Maven已经为karaf提供了一个插件,你唯一需要做的就是附加它。

如需更多参考,请参阅以下链接。

http://karaf.apache.org/manual/latest/developers-guide/karaf-maven-plugin.html

由于

答案 1 :(得分:0)

我同意tech-idiot,你最好的选择是花一些时间使用 karaf-maven-plugin ,但你也可以手动设置捆绑包,至少知道它可以可以在maven插件的帮助下轻松实现(特别是如果你有很多依赖项)。

一个基本的OSGI包(你称之为“插件”),只不过是带有特殊纯文本文件的 JAR 文件, MANIFEST.MF 文件。

MANIFEST.MF 描述了捆绑包,其名称,描述,您希望如何激活它,以及捆绑需要运行的内容(其依赖项,或< em> imports ),以及它为其他包提供的内容( exports )。

这是一个取自wikipedia OSGI条目的示例清单文件:

Bundle-Name: Hello World
Bundle-SymbolicName: org.wikipedia.helloworld
Bundle-Description: A Hello World bundle
Bundle-ManifestVersion: 2
Bundle-Version: 1.0.0
Bundle-Activator: org.wikipedia.Activator
Export-Package: org.wikipedia.helloworld;version="1.0.0"
Import-Package: org.osgi.framework;version="1.3.0"

MANIFEST.MF 文件通常打包在jar的META-INF/MANIFEST.MF文件夹中,所以:

  • 您可以手动编写该文件并手动将其添加到生成的jar中。
  • 或许,从示例清单的最后三个元素开始,您只需要Import-Package部分(没有Bundle-Activator而没有Export-Package
  • 您应该在应用及其版本Import-Package 每个必需的外部包导入中声明。请记住,您在应用程序中使用的外部依赖项必须在OSGI运行时中可供运行才能运行。