2016-11-29 49 views
2

我有一個features.xml列出了幾個bundle。但他們都需要安裝顯然。所以features.xml所做的就是將依賴關係集中在一個點上。......如果我必須手動安裝bundles,那麼feature.xml的要點是什麼?

除非我可怕的錯誤。在這種情況下,如何解決我在features.xml中有很多依賴的情況,並且它們都不是以任何順序。現在,我要通過安裝每捆和啓動起來一個接一個的運動...

告訴我,我在做什麼錯 - 其中可能有幾件事情

編輯: 特點是由maven插件生成。 當我安裝功能時,我得到未解決的錯誤

執行命令時出錯:無法解析root:缺少需求[root] osgi.identity; osgi.identity = myBundleApp;鍵入= karaf.feature;版本= 「[1.0.0.RC1,1.0.0.RC1]」;篩選:=「(&(osgi.identity = myBundleApp)(type = karaf.feature)(version> = 1.0.0.RC1)(version < = 1.0.0.RC1))」[由:無法解析myBundleApp /1.0.0.RC1:缺少需求[myBundleApp/1.0.0.RC1] osgi.identity; osgi.identity = org.eclipse.jetty.websocket.server;鍵入= osgi.bundle;版本= 「[9.3.6.v20151106,9.3.6.v20151106]」;解決方案:=必需[由:無法解析org.eclipse.jetty.websocket.server/9.3.6.v20151106:缺少需求[org.eclipse.jetty.websocket.server/9.3.6.v20151106] osgi.extender;濾波器:= 「(osgi.extender = osgi.serviceloader.registrar)」]]

但feature.xml的已有MVN:org.eclipse.jetty.websocket/WebSocket的服務器/ 9.3.6.v20151106

+1

您的功能如何安裝,您的功能如何? –

+0

我通常使用功能xml文件和開發自定義karaf發行版。然後,只需引用功能文件而不是單個捆綁包就可以使它更容易。 –

+0

最有可能您的功能不完整,因此您需要確保那些包丟失也包含在您的功能描述符 –

回答

2

features.xml的要點是定義一個可用於配置Apache Karaf中的OSGi應用程序的功能存儲庫。換句話說,它的目的正是爲了不必手動安裝包!正如documentation所述:

安裝功能時,Apache Karaf會安裝功能中描述的所有資源。這意味着它將自動解析並安裝該功能中描述的所有軟件包,配置和相關性功能。

儘管如此,請記住:

  • 這是Karaf特定功能。它不會與其他OSGi容器
  • 一起工作,然後才能安裝使Karaf知道包含它的存儲庫的功能。您可以使用feature:repo-list命令來檢查Karaf知道的回收命令以及feature:repo-add命令添加存儲庫。請參閱此documentation瞭解更多詳情。
  • 網址指向束,結構,構造,裏面......有features.xml指向一個reasoures Karaf understands並且可以訪問
  • 特色(很像包)的需要,他們被激活之前加以解決。
+2

它也可能在卡拉夫之外工作,只需要功能包... –

+0

「功能」是標準的OSGi的。 「features.xml」是Apache Karaf(可以通過安裝「Feature」軟件包在其他地方使用。另一方面,IBM Websphere/Liberty通常使用「功能清單」:https://www.ibm.com/support /knowledgecenter/en/SSAW57_liberty/com.ibm.websphere.wlp.nd.multiplatform.doc/ae/rwlp_feat_definition.html – paulsm4

相關問題