.kar Apache Karaf文件是否仅打算公开功能?

时间:2019-04-13 13:08:13

标签: osgi apache-karaf apache-felix osgi-bundle karaf

我对OSGi和Karaf非常陌生,但我仍然对概念和体系结构有所了解。

我的问题与使用karaf-maven-plugin创建的.kar文件有关。

.kar文件是否只打算将功能安装到Karaf运行时中?如果我们创建一个包并将其重命名为.kar而不是.jar怎么办。这是.kar文件的有效用例吗?

谢谢

1 个答案:

答案 0 :(得分:0)

否,kar文件远不止于此,它是一种不仅提供features.xml而且还提供任何相关OSGi捆绑软件,配置文件aso的机制。在单个工件中。

这也是为什么它包含一个强制性repository/目录(基本上包含Maven存储库样式结构中features.xml描述的任何功能所必需的所有OSGi软件包)和一个可选{{3 }}目录(包含功能引用的所有其他资源)。

有关完整的示例,您可以查看Apache Karaf框架归档文件:

其中包含构成自定义Karaf安装基础并提供一组基本功能的所有基本资源:

META-INF/
...
META-INF/MANIFEST.MF
...
repository/
... OSGi bundles referenced by the features and the features.xml itself ...
resources/
resources/bin/
... scripts ...
resources/data/
...
resources/deploy/
...
resources/etc/
... configuration files ...
resources/lib/
... (non-OSGi) libraries needed (e.g. endorsed, extension, boot classpath) ...
resources/system/
... OSGi framework implementation(s) and related libraries ...