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或者参考文章后面的参考资料。