让RCP程序自动加载新插件

yulijia 发布于 2013/02/26 16:31
阅读 1K+
收藏 0

最近在用Eclipse Rcp 3.7版,开发RCP产品.现在想让打包后的RCP应用,在启动时,可以自动加载其它插件.就像eclipse 本身一样,把插件放到plugin目录下,启动eclipse时,就可以自动加载.

在网上找到一些资料,都是基于Eclipse3.2到3.4的.经过测试是好使的.但在Eclipse3.7下就不行了,因为config.ini文件的内容书写格式不一样了.

希望可以大家,谁弄过这方面的,可以帮我解答一下,谢谢啦!!

网上的文章:

使用eclipse开发的RCP应用程序默认是不能够自动加载plugins目录下的新插件的,按照以往的开发方式,加一个新的插件RCP系统中,需要在主插件里配上依赖关系。这样一来,就非常不方便,对开发人员来说不透明,而且发布程序后增加新的插件需要重新部署,这样对用户也不方便。所以让RCP程序自动加载所有的新插件将是最值得赞赏的地方。经过实际研究,发现可以做到RCP自动加载新插件,具体操作如下:

    1)首先打开主插件(RCP程序)的plugin.xml文件,定位到Dependencies选项卡,在Required Plug-ins中添加org.eclipse.update.core插件,然后保存;

    2)然后打开主插件的product产品配置文件(如果没有,请通过向导建立),在Configuration选项卡中的Plug-ins and Fragments中添加,记得首先要添加你的主插件,然后才可以选择Add Required Plug-ins。如果你之前已经添加了所需要的,那么此时只需要单击该按钮即可;然后在下面Configuration File中选择Generate a default config.ini file,最后保存即可;

    3)然后按照正常的RCP打包导出即可。

然后在导出后的目录的configuration目录下,你会看到config.ini文件,其内容一般包含如下几行:
eclipse.product=you.product
osgi.bundles.defaultStartLevel=4
osgi.bundles=org.eclipse.equinox.common@2:start,org.eclipse.update.configurator@3:start,org.eclipse.core.runtime@start

    其中第一行就是你自己的产品名称了,注意最后一行bundles中的update,这就是实现RCP自动加载新插件的关键了。以后,你开发的新插件只要往plugins目录下扔,然后重新启动RCP程序就可以自动加载插件了,是不是很方便呢。

注:该方法在Eclipse3.4平台下测试通过,之前的平台没有做测试,无法获知是否准确

 

以下是问题补充:

@qingqianshuihengxie:LZ,在eclipse3.7下实现了吗? (2013/03/10 20:40)
加载中
返回顶部
顶部