我正在尝试使用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 )的包:
<dependency>
<groupId>net.winnall.enocean.service.impl</groupId>
<artifactId>EnoceanBridgeSASS.Impl</artifactId>
<version>0.99.99</version>
<type>xml</type>
<classifier>features</classifier>
</dependency>所以我的问题是:
史蒂夫
发布于 2017-03-25 03:06:56
我自己解决了这个问题。
karaf-maven-plugin为wrap生成<feature>定义。这些都会导致上述错误。显然--至少在Karaf4.1.0中-- wrap:协议是在没有先前的<feature>定义的特性文件中使用的。karaf-maven-plugin的行为,方法2(自己编写特性文件)是唯一可行的选择。https://stackoverflow.com/questions/43007598
复制相似问题