OSGi的實現自己有一個控制檯,提供插件的查看和管理功能。而Eclipse是基於OSGi的平臺應用,這樣咱們可使用這個控制檯輔助進行插件的管理,調試等工做…html
從事插件開發的各位同行也許都遇到過這樣的問題:某個插件在發佈之後沒法啓動,在Eclipse的插件列表中也看不到。這種狀況通常是插件打包的時候出錯,或者插件的依賴項不能知足。 若是項目的插件自己就比較多,或者依賴項比較多,這種問題查起來就很是痛苦。(Eclipse的插件列表會自動忽略某些沒法啓動的插件,沒法經過Eclipse自己的插件列表排查問題)shell
而OSGi的控制檯,容許你經過命令行的方式,對插件進行安裝,卸載,啓動,更新等操做,經過這樣的方式進行排查。eclipse
例如,咱們建立兩個插件,example.TestA和example.TestB,插件B依賴插件A。而後只把插件B放到Eclipse的dropins目錄下,這樣咱們是看不到example.TestB這個插件的,也沒法使用它提供的功能。.net
此時,咱們在啓動eclipse的時候增長一個參數」- console」,就會同時啓動一個控制檯窗口,輸入ss命令,會看到全部的bundle的信息列表:插件
還能夠在命令後面增長參數過濾:命令行
有的時候,這裏也看不到插件,還可使用install命令安裝。debug
使用diag命令,能夠對某個插件進行診斷:調試
在插件開發過程當中,咱們調試插件,通常狀況下,只要不是對類的結構進行改變,均可以在DEBUG模式下,進行代碼的熱替換,即debug模式修改代碼,無需重啓,便可看到最新的效果。 可是,通常狀況下,對於plugin.xml等文件進行的修改,則必須從新啓動debug才能夠看到修改的效果。xml
而使用OSGi的update命令,就能夠省去這個麻煩。htm
首先,在調試啓動的時候,須要增長-console參數:
這樣在啓動後,就能夠在eclipse的控制檯輸入OSGi的命令了:
這個菜單的Label是配置在plugin.xml裏的,咱們修改一下這個值,而後在控制檯輸入下面的命令:
也能夠輸入update ,id就是你的插件bundle的id,這裏就是760。
能夠看到無需從新啓動,菜單項已經改變:
關於控制檯支持的全部命令列表,以及其餘命令的使用方式,能夠在控制檯輸入help或者參考文章後面的參考資料。