【问题标题】:Integrating community plugins into a ready Eclipse RCP app?将社区插件集成到现成的 Eclipse RCP 应用程序中?
【发布时间】:2012-10-18 17:02:28
【问题描述】:

我已经有一个独立的 Eclipse RCP 应用程序。接下来的任务是集成Eclipse社区中广泛使用的插件,如CDT或者说PyDev,在已经开发的内部提供各自编程语言的编辑和调试工具RCP 应用程序。只是想知道我该如何完成这项任务。我是否应该开始玩插件的扩展点并将其添加到 MANIFEST.MF

实现这一目标的各种方法是什么?选择哪一个而不是另一个?

【问题讨论】:

    标签: eclipse eclipse-plugin eclipse-rcp eclipse-cdt pydev


    【解决方案1】:

    您应该考虑的最重要的事情(除了技术)是概念。

    像 CDT 这样的插件对它们所集成的环境做出了很多假设。这意味着您的 RCP 应该具有与普通 Eclipse SDK 非常相似的用户界面和行为,以便其他“IDE-ish”插件的集成不会破坏 RCP 的界面原则。

    如果您的 RCP 不是基于通用导航器、项目、文件(通常是工作区)和多个编辑器,那么 CDT 等插件的集成对您的用户来说将是一场噩梦,并且感觉就像您的 RCP 中的另一个应用程序。

    还要确保来自第三方插件的 ui-contributions 可见(例如,如果第三方插件正在提供首选项页面,请确保您的 RCP 具有打开首选项窗口的菜单项)

    【讨论】:

      【解决方案2】:

      首先,您必须在现有 RCP 应用程序中加载新功能/插件。为此,您必须调整您的产品定义并加载新的 feature.xml 文件。或者您增强自己的 feature.xml 并将新插件放入。

      之后,您必须决定新功能/视图/视角是否是对现有 RCP 扩展点的贡献,以及您是否在 RCP 产品中使用此扩展点。

      如果您想以其他方式使用新功能(因为默认值不够),您必须指向新插件中的特定视图/操作并自行调用它们。你必须调整你自己插件的 MANIFEST.MF 并指向新插件。如果这样做,则无法关闭添加的功能,因为您确实有指向这些插件的 jard 链接。

      【讨论】:

        【解决方案3】:

        您的 RCP 产品已经依赖于 RCP 功能 (org.eclipse.rcp) 或其插件的子集。这意味着,它已经包含了定义basic extension points 的插件。

        要包含附加特性的功能(扩展),只需将这些特性添加到您的产品配置依赖项中即可。例如,您必须为 CDT 添加功能 org.eclipse.cdt,为 PyDev 添加功能 org.python.pydev.feature。

        当您只需要包含一些功能的插件时,困难的部分就开始了。

        您必须隔离提供所需功能的插件。 对于 UI 贡献,您可以通过选择所需的 UI 部分并单击 alt+shift+F1 来使用插件选择 spy。 对于非 UI 贡献,贡献扩展的信息可以在插件源的 plugin.xml 文件中找到。

        可以将这些插件及其依赖项添加到自定义功能中,该功能可以包含在您的产品中。

        虽然过时了,但Building a CDT-based editor 的文章也可能会有所帮助。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-07-19
          • 1970-01-01
          • 2012-07-06
          • 1970-01-01
          • 1970-01-01
          • 2016-04-27
          • 1970-01-01
          相关资源
          最近更新 更多