2012-10-01 29 views
2

我希望能夠從Eclipse中輕鬆調試在Apache Karaf中運行的OSGi包。到目前爲止,我確定的最簡單的方法是創建一個啓動Karaf的Java應用程序啓動器。如果捆綁包以前安裝過,那麼我可以設置斷點,即使在激活器中也是如此,並且一切都很好。在Eclipse中調試Karaf捆綁包:persist dev:觀看URLs/ID?

問題是,當代碼發生變化時,調用mvn install,然後調用Eclipse Karaf啓動器,我正在運行該緩存的舊版本。我已經從命令行運行Karaf,使用Maven URL安裝我的包,並使用dev:watch成功。但是我發現dev:watch URL並沒有被持久化。因此,當從Eclipse啓動Karaf時,沒有觀看URL(當Karaf關閉時以前的URL丟失),並且沒有安裝新版本的軟件包。

有沒有辦法讓dev:看URLs是持久的?我查找了可能包含URL的屬性,甚至可以用來指定沒有運氣的URL的Karaf命令行選項。我甚至嘗試將dev:watch命令添加到etc/shell.init.script中,但是我在Karaf啓動時收到了此消息「初始化腳本錯誤:未找到命令:dev:watch。」我假設這意味着命令也運行早在Karaf啓動序列(開發功能尚未開始?)。

任何幫助將不勝感激,甚至替代方式,我沒有考慮輕鬆調試從卡拉夫在Eclipse中運行包。目標是避免需要使用手動命令,如osgi:每次代碼更改時安裝。

回答

1

卡拉夫團隊現在也在與EIK進行更好的整合,但目前它還沒有像所需要的那樣深度整合。因此,您提供的方式基本上是進行調試的最佳方式。 用maven構建你的應用程序,做一個開發:當你的karaf啓動並運行時觀看。 因爲dev:watch是一個「開發時間」命令,所以它並不是持久的。但是您仍然可以選擇歷史記錄,當然您可以爲該命令提供多個包ID。

相關問題