我正在创建一个 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 正在使用某些 3rd 方库,例如 BIRT、NATTABLE。所以每次,我构建 featureC 或 featureD,把它放在更新站点上,然后我尝试将它们安装在我的应用程序中,它们显示依赖失败,比如bundle missing: org.eclipse.birt.core
我回到 featureC 的 feature.xml -> 插件选项卡 -> 添加 org.eclipse.birt.core 并再次构建功能。但是有几次我的 RCP 应用程序安装失败,错误包丢失。
是否有任何机制可以让我从一开始就确定所有必需的捆绑包?是否是为我的 RCP 应用程序启动更新或新的可安装单元的正确方法?