【发布时间】:2011-07-26 19:33:30
【问题描述】:
我有一个现有的 Eclipse 插件,它作为常规 IDE 插件运行,从 GUI 接收命令并在自定义视图中返回输出。
我想添加一个功能,也能够在无头模式下运行该插件,从命令行接收输入并将输出转到某个文件。除了现有的常规执行之外,是否有某种方法可以修改现有插件以支持该执行模式,还是我必须创建一个新的无头插件并只使用第一个插件中的代码?
【问题讨论】:
标签: eclipse eclipse-rcp eclipse-plugin
我有一个现有的 Eclipse 插件,它作为常规 IDE 插件运行,从 GUI 接收命令并在自定义视图中返回输出。
我想添加一个功能,也能够在无头模式下运行该插件,从命令行接收输入并将输出转到某个文件。除了现有的常规执行之外,是否有某种方法可以修改现有插件以支持该执行模式,还是我必须创建一个新的无头插件并只使用第一个插件中的代码?
【问题讨论】:
标签: eclipse eclipse-rcp eclipse-plugin
这取决于您打算如何使用此插件以及主要问题:是否存在您的 UI 依赖项不可用的情况,即是否存在没有 SWT 和 RCP 捆绑包的捆绑包配置?
没有可用的用户界面
在这种情况下,您需要将插件的无头部分提取到新插件中,然后将无头入口点注册到它。插件的 UI 部分将依赖于新插件,并且只是将 UI 请求委托给无头部分中的适当 API。
为了提供无头应用,你应该看看org.eclipse.equinox.app.IApplication接口和org.eclipse.equinox.applications扩展点。定义应用程序后,只需调用以下命令即可启动它:
eclipse -application <app-id> <app-param>
更多信息可以在Eclipse Help找到。
用户界面可用
更简单的情况。只需要指定无头入口点,一切都会像以前一样工作。
然而,我的经验表明,迟早会出现需要拆分插件的情况,根据其复杂性,它可能会比早先拆分时造成更多的麻烦。
【讨论】: