将社区插件集成到现成的Eclipse RCP应用程序中?

时间:2012-10-29 11:22:57

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

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

实现这一目标的方法有哪些?哪一个接过另一个?

3 个答案:

答案 0 :(得分:3)

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

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

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

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

答案 1 :(得分:1)

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

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

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

答案 2 :(得分:1)

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

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

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

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

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

虽然注明日期,但文章Building a CDT-based editor也可能有所帮助。