karaf-maven-plugin 的推荐使用模式是什么?

What is the recommended usage pattern for karaf-maven-plugin?

我有一堆 java classes 和一个包激活器 class 我需要部署到 karaf。

我看到 karat-m​​aven-plugin 有 kar packaging 和 karaf-assembly。

同时生成features.xml

我可以直接生成 features.xml 并且它生成带有 wrap: 的行,用于我的一些依赖的非 osgi jar。

但是当我 运行 karat-assembly 时,我 运行 进入了汇编目标的问题,没有意识到这些 jar 不是 osgi 并且最终出现错误。

在安装我的应用程序的情况下获取自定义 karaf 的推荐方法是什么?

karat-assembly 包装是否需要事先生成并提供 features.xml?或者它应该自己生成特征集吗?如果是后者,那么我该如何解决 karat-assembly 无法识别非 osgi jar 的问题?

我花了很多时间在 google 上,但我很困惑。

这是我创建自定义 karaf 分发的过程。它可能不是 "best practice" 但对我有用。也许您可以根据自己的需要进行定制。

  1. 在开发我的 Camel 路线并进行测试后,我根据 /src/main/feature/feature.xml 中的功能模板生成了我的功能文件。 karaf-maven-plugin 将在 /target 内的功能文件夹中生成功能。
  2. 我对我们的 maven artifactory 做了一个干净的部署。
  3. 我有一个自定义 Karaf 项目,在该项目上执行全新安装。该项目依赖于初始项目,我将所有功能添加为引导级别功能。
  4. 构建完成后,我解压缩分发包和 运行 Karaf 应用程序。如果一切正常,就可以发货了。