Eclipse RCP:创建需要 2 个不同版本插件的产品时出现问题

StackOverflow https://stackoverflow.com/questions/479254

  •  20-08-2019
  •  | 
  •  

出于与外部产品兼容性的原因,我需要构建一个 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 插件的方法。运行时出现错误,表明缺少 1.4.103 版本的 Lucene。

有帮助吗?

解决方案

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

在另一侧,捆绑包列出了计划通过“Export-Package”和“Export-Service”导出的服务和包。因此,捆绑包实现之间不存在硬依赖性。只要某个捆绑包提供了您导入的包,您的捆绑包就会很高兴。

举例来说,WTP(网络工具平台) 有重复的 javax.wsdl 插件:


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

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

其他提示

我挖成这个问题相当多的处理与BIRT捆绑在一起,从而继承了2个不同版本javax.wsdl的需求的产品。阅读了大量的维基页面,Bugzilla的条目,等等之后,我发现它在PDE(插件开发环境)的问题,构建过程。这个问题现在已经在Eclipse 3.5纠正。 Bugzilla的条目是在 https://bugs.eclipse.org/bugs/show_bug的CGI?ID = 265438

基本上,Eclipse本身允许你指定两个版本,并正确解决一切。然而,PDE生成(使用相同的产品文件)拉只有插件的最新版本。我们对当前的Eclipse 3.4基础的解决方案是额外的插件强行复制到目标的plugins文件夹。这解决了我们的问题暂且,我们将迁移到Eclipse RCP 3.5基地在未来拿起上面提到的bug修复。

如何即将从源代码编译的代码以另一个名称这个插件?或写为老年插件函数的包装到较新的?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top