[英]Karaf-assembly and features: new and old method?
我正在嘗試創建一個可以使用 Karaf 啟動的 Java Maven OSGI 桌面應用程序。 該項目包括幾個捆綁包。 我相信我需要創建功能並組裝它們?
從 Karaf 的文檔來看,似乎有一種新的和“舊的”方式。 https://svn.apache.org/repos/asf/karaf/site/production/manual/latest/custom-distribution.ZFC35FDC70D5FC69D269883A822C7A5EZ3我仍然對以下內容感到困惑:
除了我的父/子捆綁項目之外,是否應該有一個具有自己的 pom.xml(s) 的 Features 和一個 Assembly 項目? 我不確定整體結構,並發現了不同的 karaf 示例。
features.xml 應該自動(通過插件)生成還是手動創建?
如果應該有一個 Features 項目,它應該有<packaging>features</packaging>
還是<packaging>pom</packaging>
對於我的目標,是否需要 karaf 藍圖/駱駝?
謝謝
- 除了我的父/子捆綁項目之外,是否應該有一個具有自己的 pom.xml(s) 的 Features 和一個 Assembly 項目? 我不確定整體結構,並發現了不同的 karaf 示例。
大多數示例通常會看到人們將這樣的結構用於 osgi-applications(基本上是一組一起工作以提供服務的捆綁包)。
為自己的項目使用功能是可選的,但通常建議安裝單個包及其依賴項,因為你擁有的包越多,就越乏味。 使用功能,您可以對捆綁包、它們的依賴項(包括功能)和默認配置進行分組,這使得安裝、卸載和更新 OSGi 應用程序變得更加容易。
- features.xml 應該自動(通過插件)生成還是手動創建?
- 如果應該有一個功能項目,它應該有
至於包括組裝項目取決於個人喜好。 然而,基於關注點分離,如果上述 karaf 實例僅運行一個 osgi 應用程序,則可以將 assemply 項目包含到相關的父項目中,而如果它運行多個應用程序,最好將其與 OSGi 應用程序分開或將其包含在一些項目包括包含通用工具、模型和服務的捆綁包,這些捆綁包用於我在 karaf 中運行的多個 OSGi 應用程序。
要創建 features.xml,您應該使用官方的 karaf-feature-archetype org.apache.karaf.archetypes/karaf-feature-archetype/<karaf-version>
為您提供預配置的項目,您可以在其中開始添加功能定義. 有了它,您可以使用例如mvn install
命令生成 features.xml 文件。 有關文檔中可用原型的更多信息。
官方原型生成的項目使用<packaging>features</packaging>
。
- 對於我的目標,是否需要 karaf 藍圖/駱駝?
取決於您的應用是否需要 Apache 駱駝的集成功能。 您也可以使用沒有駱駝的藍圖,或者使用聲明式服務。
至於桌面應用程序,不知道 karaf 對它們的支持程度如何。 我見過的最常見的用例與運行后端的東西有關,比如 web-services、集成、計划任務等。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.