Eclipse插件(RCP) eclipse plugin-in project 和 feature project 的差异及联系

eclipse plugin-in project 和 feature project 分别是什么?有那些相同点和不同点。分别用在什么样的场景中,解决怎么样的需求?

对比

eclipse plugin-in project 和 feature project 都是用来构建eclipse插件的。

不同点:

  • plugin-in project 是 lowest-level 的插件,主要实现特定功能。
  • feature project 包含多个 plugin-in project ,代表一组相关功能。

相同点:

  • 都是基于OSGi框架构建的。
  • 都可以包含java代码,xml配置文件。

使用场景:

  • 当你需要实现一个独立功能时,可以使用plugin-in project。比如实现一个简单的代码编辑器插件。
  • 当你需要实现一组相关功能时,可以使用feature project。比如实现一个包括UML编辑器、代码生成器等多种功能的UML工具插件。

通过plugin-in project实现基本功能,将相关 plugin-in 通过feature project 整合到一起,提供完整的功能集合。

小节:

  • plugin-in project 适合实现独立功能
  • feature project 适合整合相关 plugin-in ,提供一个完整的功能集。

让插件集合更加模块化,易于开发和维护。

示例

了解了两者的差异及使用场景,本节将以实现UML工具为例具体说明两者事件的差异与关联

如果要实现一个UML工具插件,可以采用下面的结构:

plugin-in projects:

  • UMLViewer: 实现UML图的查看和编辑功能
  • ClassDiagram:实现类图功能
  • SequenceDiagram:实现时序图功能
  • … 其他UML图类型对应的插件

feature project:

  • UMLTool

包含上述所有UML图类型对应的插件。提供完整的UML图建模功能。

这些plugin-in projects 都是独立功能,但属于同一个UML工具,所以整合到一个feature project 下。

UMLViewer plugin-in project 可以独立使用,提供基本的UML图功能。
但整合到UMLTool feature project 后,可以和其他UML图类型的插件共享类、方法等。

发布时:

  • 可以单独发布UMLViewer plug-in ,满足只需要基本UML图功能的用户。
  • 也可以发布整个UMLTool feature,提供全面的UML图建模功能。

小结:

  • 用 plug-in projects 封装独立功能
  • 用 feature project 整合相关 plug-in,提供完整功能
  • 分模块開發,同時保證功能整合

这样既解决了模块化,又解决了整合两个方面的需求。

plugin-in project 何如整合为 feature project ?

将多个plugin-in project整合为一个feature project主要有以下步骤:

  1. 创建feature project。右击项目→New →Feature Project。
  2. 定义feature.xml文件。指定feature id和name,用来定义该feature提供的功能。
<?xml version="1.0" encoding="UTF-8"?>
<feature
      id="com.mycompany.myfeature"
      label="My Feature" 
      version="1.0.0" 
      provider-name="MyCompany">
</feature>
  1. 在feature.xml中include对应的plugin-in projects。
<plugin 
     id="com.mycompany.plugin1" 
     download-size="500"
     install-size="200" 
     version="1.0.0"/>

<plugin 
     id="com.mycompany.plugin2"  
     download-size="1000"
     install-size="500"
     version="1.0.0"/>
  1. 利用Eclipse Plugin Dependency Analysis Tool(PDE Dependencies)检查依赖关系。确保所有依赖都被 resolver。
  2. 编译(Build) feature project,生成feature.jar,包含所有包含的plugin-in项目。
  3. 发布feature.jar,用户就可以通过安装该feature来获得所有相关的功能。

主要就是通过在feature项目的feature.xml中包含多个plugin-in的id,并指定版本号,从而将它们整合到一个feature中。
创建feature.jar后,就可以作为一个整体发布和安装。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值