【问题标题】:Correct way to generate feature files for Karaf?为 Karaf 生成特征文件的正确方法?
【发布时间】:2017-03-24 19:24:14
【问题描述】:

我正在尝试使用 Maven(和 NetBeans)创建一个 Karaf 程序集。我使用声明性服务创建捆绑包,但在创建功能文件时遇到问题。我的部分问题是 OSGi 生成的错误消息。但我有一个更笼统的问题。

我发现我可以在创建我的捆绑包的项目中调用karaf-maven-plugin,它会根据捆绑包的依赖关系生成看似全面填充的功能文件。 (方法一)

但是,我在某处读到使用karaf-maven-plugin 创建功能文件通常只能在使用feature 打包的项目中完成。如果我这样做,在我看来我必须手动创建特征文件,这不是很有趣。 (方法二)

无论我使用哪种方法,我都无法成功生成一个 Karaf 程序集,该程序集包含除了简单包之外没有任何依赖关系的任何内容。我目前正试图安装一个需要包装一些非 OSGi 依赖项的单个包。上面的方法 1 生成 wrap 东西(<feature> 和 wrap: 协议)。我得到的只是以下错误:

Failed to execute goal org.apache.karaf.tooling:karaf-maven-plugin:4.1.0:assembly (default-assembly) on project EnoceanBridgeAdmin: Unable to build assembly: [wrap/0.0.0]

EnoceanBridgeAdmin 是我正在尝试构建的karaf-assembly 包装。它依赖于包含生成的功能文件的包(其中引用了wrap):

<dependency>
    <groupId>net.winnall.enocean.service.impl</groupId>
    <artifactId>EnoceanBridgeSASS.Impl</artifactId>
    <version>0.99.99</version>
    <type>xml</type>
    <classifier>features</classifier>
</dependency>

所以我的问题:

  1. 上述方法 1 的用法正确吗?
  2. 能否自动生成特征文件以使用方法 2?
  3. 方法 1 或 2 排序后错误信息会消失吗?

史蒂夫

【问题讨论】:

    标签: maven apache-karaf karaf


    【解决方案1】:

    我自己解决了这个问题。

    1. 方法 1 不起作用,因为 karaf-maven-plugin 为 wrap 生成 &lt;feature&gt; 定义。这些会导致上述错误。显然,至少在 Karaf 4.1.0 中,wrap: 协议在没有事先定义 &lt;feature&gt; 的功能文件中使用。
    2. 由于karaf-maven-plugin 的行为,因此方法 2(自己编写功能文件)是唯一可行的选择。
    3. 是的,错误信息消失了:-)

    【讨论】:

      猜你喜欢
      • 2013-11-16
      • 1970-01-01
      • 2018-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-30
      • 2023-03-19
      • 2021-05-30
      相关资源
      最近更新 更多