首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为Karaf生成特征文件的正确方法?

为Karaf生成特征文件的正确方法?
EN

Stack Overflow用户
提问于 2017-03-24 19:24:14
回答 1查看 565关注 0票数 0

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

我已经发现,我可以在创建包的项目中调用karaf-maven-plugin,它根据包的依赖关系生成一个似乎是全面填充的特性文件。(方法1)

但是,我在某个地方读到,使用karaf-maven-plugin创建特性文件通常只应在带有feature打包的项目中完成。如果我这样做,在我看来,我似乎必须手工创建功能文件,这不是很多乐趣。(方法2)

无论我使用哪种方法,我都无法成功地生成一个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 )的包:

代码语言:javascript
复制
<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排序后,错误信息会消失吗?

史蒂夫

EN

回答 1

Stack Overflow用户

发布于 2017-03-25 03:06:56

我自己解决了这个问题。

  1. 方法1不能工作,因为karaf-maven-pluginwrap生成<feature>定义。这些都会导致上述错误。显然--至少在Karaf4.1.0中-- wrap:协议是在没有先前的<feature>定义的特性文件中使用的。
  2. 因此,由于karaf-maven-plugin的行为,方法2(自己编写特性文件)是唯一可行的选择。
  3. 是的,错误信息消失了:-)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43007598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档