首先,我是OSGi/Maven的初學者,我正在研究如何使用這些工具有效地工作(目前,我預測將使用Felix作爲我的OSGi實現)使用maven構建OSGi發行版的高效方式
我想創建一個基於許多捆綁的項目。當然,每一次我做的修改上一個(或多個)我的包(一個或多個),我不想重新部署「手動」
我想要做的是一樣的東西:
mvn buildMyOsgiDistrib
mvn runMyOsgiDistrib
你對我有什麼建議? 謝謝
首先,我是OSGi/Maven的初學者,我正在研究如何使用這些工具有效地工作(目前,我預測將使用Felix作爲我的OSGi實現)使用maven構建OSGi發行版的高效方式
我想創建一個基於許多捆綁的項目。當然,每一次我做的修改上一個(或多個)我的包(一個或多個),我不想重新部署「手動」
我想要做的是一樣的東西:
mvn buildMyOsgiDistrib
mvn runMyOsgiDistrib
你對我有什麼建議? 謝謝
有兩個選項可以讓你在那裏。
您可以:
使用Apache Karaf並創建一個自定義分佈
您可以創建一個項目karaf特徵文件,並使用karaf - Maven的插件來創建自定義karaf發行。
看到這個例子https://github.com/cschneider/decanter-docker/blob/master/decanter-server/pom.xml。
使用bndtools來組裝您的應用程序。
在這種情況下,您將創建一個包含您的依賴項的pom,並使用bnd-indexer-plugin從它創建一個OBR索引。
然後,您可以在獨立模式下使用bndrun文件來定義頂級依賴關係,並讓解析器根據您在上面創建的回購庫解決它們。
我創建了一個通常在bndtools UI中執行的maven plugin to automate the resolve and export step。這個插件可能會成爲下一個版本的一部分。
卡拉夫變種更爲成熟,因爲它已經存在了更長的時間,但卡拉夫不是普通的變形蟲。卡拉夫的優勢在於它對於典型的大型項目具有很多功能。所以這很容易得到這個工作。
bndtools變種不像他們剛剛開始支持maven那樣成立。您還必須將所有依賴關係自己包含在該索引的pom中。積極的方面是,它創建了一個非常小的可部署,並且解析器可以幫助您很大程度上正確地獲得您的依賴關係。
非常感謝您基督教這個詳細的解答
因爲我貼我的問題,我發現下面的文檔Cooking with Maven and OSGi,基於Maven的大同插件
它提供了優勢,在任何OSGi實現工作(不僅卡拉夫)。目前我正在學習什麼這個選項...
再次,非常感謝你
我覺得廚師書還有PAX插件已經過時了很長的時間。正如你在版權中看到的那樣,烹飪書是從2009年開始的。如果您搜索的解決方案不是卡拉夫特定的,我推薦使用bndtools。 –