我有一个features.xml,其中列出了一些捆绑包。但它们都需要显然安装。所以features.xml所做的就是将依赖关系收集到一个地方....
除非我非常错误。在这种情况下,如何解决我在features.xml中有很多依赖项的情况,它们都不是任何顺序。现在我正在练习安装每个捆绑包并逐个启动它们......
告诉我我做错了什么 - 可能有几件事
编辑: 功能由maven插件生成。 当我安装功能时,我得到了未解决的错误
Error executing command: Unable to resolve root: missing requirement [root] osgi.identity; osgi.identity=myBundleApp; type=karaf.feature; version="[1.0.0.RC1,1.0.0.RC1]"; filter:="(&(osgi.identity=myBundleApp)(type=karaf.feature)(version>=1.0.0.RC1)(version<=1.0.0.RC1))" [caused by: Unable to resolve myBundleApp/1.0.0.RC1: missing requirement [myBundleApp/1.0.0.RC1] osgi.identity; osgi.identity=org.eclipse.jetty.websocket.server; type=osgi.bundle; version="[9.3.6.v20151106,9.3.6.v20151106]"; resolution:=mandatory [caused by: Unable to resolve org.eclipse.jetty.websocket.server/9.3.6.v20151106: missing requirement [org.eclipse.jetty.websocket.server/9.3.6.v20151106] osgi.extender; filter:="(osgi.extender=osgi.serviceloader.registrar)"]]
但是feature.xml已经有<bundle>mvn:org.eclipse.jetty.websocket/websocket-server/9.3.6.v20151106</bundle>
答案 0 :(得分:4)
features.xml
的要点是定义可用于在Apache Karaf中配置OSGi应用程序的功能存储库。换句话说,它的目的正是不必手动安装捆绑包!正如documentation所述:
安装功能时,Apache Karaf会安装该功能中描述的所有资源。这意味着它将自动解析并安装该功能中描述的所有捆绑包,配置和依赖项功能。
那就是说,请记住:
feature:repo-list
命令检查Karaf知道哪些repos,并使用feature:repo-add
命令添加存储库。有关详细信息,请参阅此documentation。features.xml
内的捆绑包,功能,配置等的网址必须指向卡拉夫understands,并且可以访问