簡體   English   中英

Karaf-組裝和特點:新舊方法?

[英]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我仍然對以下內容感到困惑:

  1. 除了我的父/子捆綁項目之外,是否應該有一個具有自己的 pom.xml(s) 的 Features 和一個 Assembly 項目? 我不確定整體結構,並發現了不同的 karaf 示例。

  2. features.xml 應該自動(通過插件)生成還是手動創建?

  3. 如果應該有一個 Features 項目,它應該有<packaging>features</packaging>還是<packaging>pom</packaging>

  4. 對於我的目標,是否需要 karaf 藍圖/駱駝?

謝謝

  1. 除了我的父/子捆綁項目之外,是否應該有一個具有自己的 pom.xml(s) 的 Features 和一個 Assembly 項目? 我不確定整體結構,並發現了不同的 karaf 示例。

大多數示例通常會看到人們將這樣的結構用於 osgi-applications(基本上是一組一起工作以提供服務的捆綁包)。

  • 父項目
    • API 捆綁包
    • 實施捆綁包
    • 功能庫項目

為自己的項目使用功能是可選的,但通常建議安裝單個包及其依賴項,因為你擁有的包越多,就越乏味。 使用功能,您可以對捆綁包、它們的依賴項(包括功能)和默認配置進行分組,這使得安裝、卸載和更新 OSGi 應用程序變得更加容易。

  1. features.xml 應該自動(通過插件)生成還是手動創建?
  2. 如果應該有一個功能項目,它應該有

至於包括組裝項目取決於個人喜好。 然而,基於關注點分離,如果上述 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>

  1. 對於我的目標,是否需要 karaf 藍圖/駱駝?

取決於您的應用是否需要 Apache 駱駝的集成功能。 您也可以使用沒有駱駝的藍圖,或者使用聲明式服務。

至於桌面應用程序,不知道 karaf 對它們的支持程度如何。 我見過的最常見的用例與運行后端的東西有關,比如 web-services、集成、計划任務等。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM