我的更新站点上缺少我的RCP应用程序的依赖项

时间:2013-03-19 13:36:23

标签: eclipse-rcp eclipse-pde p2 update-site

我正在创建一个RCP应用程序。我打算提供p2更新功能。

例如,有4个插件:A,B,C,D

插件A和B代表我的RCP应用程序的核心功能。我创建了一个名为com.myorg.feature.core的功能。在feature.xml的内部,在插件选项卡中我添加了插件A& B.

我在我的RCP应用程序的产品文件中添加了com.myorg.feature.core功能作为依赖项。之后,我使用产品文件导出RCP应用程序(此处产品是基于功能的产品)。

现在我又创建了两个功能。

com.myorg.feature.featureC
com.myorg.feature.featureD

由于这些是我的RCP应用程序的可选功能,我希望用户选择是否安装它们。因此,用户将选择安装新软件选项,其中列出此功能。

我面临的问题是,这些插件C& D正在使用某些第三方库,例如BIRT,NATTABLE。所以每次我构建featureC或featureD,把它放在更新站点上,我尝试在我的应用程序中安装它们,它们显示依赖性失败,如bundle missing: org.eclipse.birt.core

我回到featureC的feature.xml - >插件标签 - >添加org.eclipse.birt.core并再次构建功能。但有几次我的RCP应用程序无法安装,错误包丢失。

是否有任何机制可以让我从头开始确定所有必需的捆绑包?是我的RCP应用程序启动更新或新的可安装单元的正确方法吗?

2 个答案:

答案 0 :(得分:0)

对我而言,第一个问题应该是您是否真的想使用Eclipse PDE导出向导来提供更新。

相反,您应该为您的项目设置无头构建。如果您熟悉PDE(并且不喜欢讨厌Maven ;-),Tycho可能是您的正确选择。 (免责声明:我是Tycho项目的提交者,可能不知道所有可能的替代方案。)

您可以轻松地让Tycho在p2 repository中包含所有传递依赖项:只需在tycho-p2-repository-plugin上将选项includeAllDependencies设置为true

答案 1 :(得分:0)

@Priank最好在feature.xml中的插件选项卡中添加所有依赖项,这只需要一次性工作。您可以从feature.xml的依赖项选项卡

计算所需的插件