2

出于与外部产品兼容的原因,我需要构建一个 RCP 应用程序,该应用程序必须包含 2 个版本的插件。该插件是 org.apache.lucene,目前在 eclipse 3.4 中是 1.9.1。我需要版本 1.4.103 才能与其他应用程序兼容。我应该说我的 RCP 应用程序最初是使用 eclipse 3.2 开发的,升级到 3.4 后出现了这个问题。

在开发和测试期间,我的应用程序运行正常。我必须在运行配置中手动添加 1.4.103 插件,否则运行正常。

现在我处于构建产品阶段,找不到在产品向导的配置选项卡中添加 2 个版本的 Lucene 插件的方法。运行时出现错误,表示缺少 Lucene 的 1.4.103 版本。

4

3 回答 3

2

考虑一下,在 OSGi 中,包没有包之间直接依赖的概念。
相反,每个包列出了它希望其他包通过“Import-Package”和“Import-Service”标头注册的服务和包。

另一方面,捆绑包列出了它计划通过“Export-Package”和“Export-Service”导出的服务和包。因此,bundle 实现之间没有硬依赖。只要某些捆绑包提供了您导入的包,您的捆绑包就会很高兴。

作为说明,WTP(Web 工具平台)具有重复的 javax.wsdl 插件


现在您应该确保您已经使用子菜单“PDE 工具”(右键单击您的项目)转换了您的 3.2 插件项目。

然后您可以为您的 rcp 应用程序定义一个产品,在其中您将为运行时定义一个配置(目标),而不是一个开发目标。

于 2009-01-26T10:16:54.430 回答
2

我在处理捆绑 BIRT 的产品时深入研究了这个问题,因此继承了对 javax.wsdl 的 2 个不同版本的要求。看了很多wiki页面、bugzilla条目等,发现是PDE(Plug-in Development Environment)构建过程中的问题。该问题现在已在 Eclipse 3.5 中得到纠正。bugzilla 条目位于https://bugs.eclipse.org/bugs/show_bug.cgi?id=265438

基本上,Eclipse 本身允许您指定两个版本并正确解决所有问题。但是,PDE Build(使用相同的产品文件)仅提取最新版本的插件。我们对当前 Eclipse 3.4 基础的解决方案是强制将附加插件复制到目标的 plugins 文件夹中。这暂时解决了我们的问题,我们将在未来迁移到 Eclipse 3.5 RCP 基础以获取上述错误修复。

于 2009-10-02T00:46:36.537 回答
0

用另一个名字从源代码编译这个插件怎么样?或者为较新的插件功能编写一个包装器?

于 2009-03-23T18:16:54.277 回答