从Eclipse中以编程方式安装Eclipse插件?

时间:2009-10-05 14:37:27

标签: eclipse eclipse-plugin p2

我想为Eclipse插件创建一个自动安装程序(即不通过“Update Manager”)。我的场景很简单:用户关闭Eclipse,将下载的JAR放入dropins文件夹,启动Eclipse,其余部分自动完成。

在较旧的Eclipse版本中,在P2时代之前,Eclipse(仍然有)一个名为InstallCommand的类,可用于将插件安装到当前运行的平台中。

虽然这仍然适用于Eclipse 3.4& 3.5,它表现不正常:最明显的是,以这种方式安装的插件无法自动卸载(它变暗)。

JavaDoc声称InstallCommand已弃用,应替换为P2替代方案。但是,我找不到合适的工具。有P2 director,但它是为从命令行作为单独的应用程序运行而构建的。可以从Eclipse中调用它,但它实际上并没有被删除。例如,进度监控和错误报告效果不佳。

有人知道一个很好的选择吗?

谢谢, Zviki

3 个答案:

答案 0 :(得分:1)

Dropins似乎非常接近你想要的,特别是如果他们只是在没有相关元数据的情况下下载jar(即元数据需要自动生成)。

您可以考虑定义第二个dropins区域来管理自己。请查看org.eclipse.equinox.p2.reconciler.dropins中的ProfileSynchronizer,特别是createProfileChangeRequest方法。我希望您不喜欢的卸载行为是添加IInstallableUnit.PROP_PROFILE_LOCKED_IU属性的结果。

在启动时协调dropins,请参阅p2.reconciler.dropins Activator.watchDropins(),您可以从自己的bundle中执行相同的操作来查看另一个文件夹。

答案 1 :(得分:0)

我建议将您的插件部署为可执行JAR。 JAR中的安装程序应该要求Eclipse安装目录并在正确的位置解压缩插件(并根据需要再添加一些检查)。

可选择包含一个小的“看门狗”插件,该插件不需要太多,只是检查主插件是否正确加载并显示一条有用的错误消息,用户可以通过电子邮件向您发送支持。

答案 2 :(得分:0)

根据错误311590 1中的信息,该信息在InstallCommand的弃用评论中引用,替代方案可能是使用P2操作23