2017-06-20 31 views
4

我想更高效地開發使用karaf的OSGi包。高效的Karaf開發過程

我的理想的過程將是:

  1. karaf在後臺運行
  2. 部署我所有的捆綁和依賴關係(腳本)
  3. 化妝karaf觀看任何改變我的本地Maven回購我的包
  4. 包&安裝單獨的文物,讓karaf重新加載它們

目前,我使用卡拉夫裝配進行生產,但是這不允許我觀察當地的Maven回購,因此每個生產週期都需要停止並組裝完整的卡拉夫裝置,然後再次運行,這很慢並且效率低下。

我還有一個描述所有依賴關係的特性,如果我可以重用它而不是手動聲明所有的依賴關係,那將是非常棒的。

任何建議如何用卡拉夫來完成這個任務?

p.s.這個過程可以使用Gradle完成嗎?

回答

2

最簡單的方法是啓動karaf clean並安裝您的功能。當然你可以編寫這部分腳本。您可以輸入bundle:watch *。這會監視您當地的Maven回購以瞭解SNAPSHOT捆綁包中的更改。

如果您現在在單個捆綁項目上執行mvn clean install,捆綁會自動更新。

你也可以用karaf debug啓動karaf。這啓動了啓用遠程調試的karaf。所以你可以簡單地使用eclipse到端口5005做一個調試會話。這也適用於Bundle:watch above。在調試時,您可以更改代碼並在捆綁項目上運行mvn clean install,並使用更改後的捆綁包繼續進行調試。當然,你會放棄更改後的包的狀態,但系統的其餘部分不變。

請注意,該套件僅適用於套件未在karaf系統文件夾中部署的情況。所以,如果你開始一個自定義的karaf發行版,那麼你的軟件包將不會被更新。這可以通過簡單地從系統目錄中刪除這些文件來解決,因爲它們將從本地maven倉庫中獲取。當您使用karaf自己的代碼時,這非常方便。

+0

謝謝!所以如果我使用功能安裝,這也將與手錶一起工作?我不需要手動安裝每個軟件包? – Gadi

+0

是的..它通過功能安裝正常工作。 –

+0

我沒有接受這個答案,因爲我無法得到這個工作。觀看*似乎沒有重新加載部署到本地Maven回購的捆綁包。 – Gadi