0

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

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

从哪儿开始?:)

4

2 回答 2

3

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

有关更多参考,您可以查看以下链接。

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

谢谢

于 2013-07-31T19:44:49.147 回答
0

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

一个基本的 OSGI 包(您称为“插件”)只不过是一个JAR文件,其中包含一个特殊的纯文本文件,即MANIFEST.MF文件。

MANIFEST.MF描述了包、它的名称、描述、你想如何激活它、包需要运行什么(它的依赖项或导入),以及它必须为其他包提供什么(它的导出)。

这是取自维基百科 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文件通常打包在您的META-INF/MANIFEST.MFjar 文件夹中,因此:

  • 您可以手动编写该文件并将其手动添加到生成的 jar 中。
  • 可能,从示例清单的最后三个元素中,您只需要Import-Package部分( noBundle-Activator和 no Export-Package
  • 您应该在Import-Package 每个所需的外部包导入中声明您的应用程序及其版本。请记住,您在应用程序中使用的外部依赖项必须在 OSGI 运行时中可用,您的包才能运行。
于 2013-08-07T09:32:05.157 回答