如何实现RCP与其插件的关系
在ECLIPSE RCP开发工作中,完成产品与插件的安装模式、共享JAR,以及插件调用产品的包。需要解决一系列问题:
1:解决PRODUCT与插件依赖集
2: PRODUCT如何向PLUGIN开放自己或公共JAR的包
3: PLUGIN如何引入PRODUCT的包
<o:p> </o:p>
下面给出解决方案:
1, 解决PRODUCT与插件依赖集
现在还没有有效的办法解决,现在只能利用开发中的经验来添加依赖的插件。添加依赖插件都是在产品中添加,所以,对其他人在开发各个模块(在ECLIPSE中称为插件)时没什么影响,因为,我们已做好了相对依赖集齐全的产品
依赖集添加,我们使用功能部件中的feature.xml中添加依赖插件,对应配置文件编辑器的plug-in菜单项。设置参照图(1)示:
<v:shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></v:path><o:lock aspectratio="t" v:ext="edit"></o:lock></v:shapetype><v:shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"> <v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></v:path><o:lock aspectratio="t" v:ext="edit"></o:lock></v:shapetype>
图(1)
功能部件,其作用大家可以参看IBM的相关文章http://www-128.ibm.com/developerworks/cn/linux/opensource/os-ecfeat/。
<o:p> </o:p>
2,PRODUCT如何向PLUGIN开放自己或公共JAR的包
在 3.1 之前版本的 Eclipse 中,在每个插件的 plugin.xml 文件中定义插件依赖关系以及扩展和扩展点。在使用 OSGi 的新版本 Eclipse 中,依赖关系信息被分解到 manifest.mf 文件中。在产品的主程序中,需要做一些设置,如下:
(A)打开META-INF /manifest.mf。进入下面界面,选择runtime菜单。可以看到runtime exported packages,对应到Export-Package属性,manifest.mf文件的属性作用请参照IBM译文http://www-128.ibm.com/developerworks/cn/opensource/os-ecl-osgi/index.html。Export-Package 该属性指定要公共暴露给其他插件的所有包。设置可参照下图(2):
图(2)
<o:p> </o:p>
3,PLUGIN如何引入PRODUCT的包
调用product的包,首先,需要增加增加依赖的插件,因为插件是在产品的基础上来加载的,所以需要将产品设为其运行依赖。设置方法如图(3):
图(3)
<o:p> </o:p>
在wokespace中需要import产品工程。这样才能在PLUGIN中引入产品的包。这里需要注意的是引入包路径为;
上一篇: Github 编辑器 Atom 已开源
下一篇: JDBC概述与连接
推荐阅读
-
以实现MongoDB副本集状态的监控为例,看Telegraf系统中Exec输入插件如何编写部署
-
RTSP协议网络摄像头接入视频平台EasyNVR实现网页无插件直播后台导出用户信息是如何实现的?
-
如何实现类似脉脉网的二维人际关系
-
如何实现类似脉脉网的二维人际关系
-
设计模式 - 如何用PHP实现一个类似插件中心的类?
-
使用 doctrine orm 如何在程序逻辑上实现在一张表完成两个外键的设置(或则说一个实体完成两个多对一的关系)?
-
如何实现RCP与其插件的关系
-
以实现MongoDB副本集状态的监控为例,看Telegraf系统中Exec输入插件如何编写部署
-
jQuery插件datatables的用法及如何实现分页代码详解
-
如何查找Oracle用户与其在操作系统上的进程关系