在this previous question的背景下我想知道是否可以在不增加 RCP 产品版本的情况下更新我的 RCP 产品中包含的功能(基于功能)?
假设我有以下 RCP 应用程序
com.my.company.myproduct 1.0.0 包括
- org.eclipse.rcp 3.5.0
- com.my.company.myproduct.feature1 1.0.0
- com.my.company.myproduct.feature2 1.0.0
我的问题是,我可以在不增加产品版本号的情况下增加、导出并安装(在 1.0.0 环境中)com.my.company.myproduct.feature2 的新版本(例如 1.1.0) ?
我想知道这一点,因为这样可以避免向我的客户提供大的(> 50 兆字节)补丁。
最佳答案
首先,将产品部署到 p2 存储库中。顶部和根 IU 是 com.my.company.myproduct_1.0.0。它由 org.eclipse.rcp_3.5.0 和 com.my.company.feature_1.0.0 组成。
然后您的功能有更新,因此您可以将 com.my.company.myproduct 发布到 1.1.0。它由 org.eclipse.rcp_3.5.0 和 com.my.company.feature_1.1.0 组成。它还应该部署为 p2 存储库。但是,您可以从存储库中删除 org.eclipse.rcp 的所有工件(org.eclipse.rcp 的功能和插件 jar)以减小大小。
它是一个累积存储库,无法安装到干净的环境中。但是,它可以安装在现有产品 1.0.0 上。 P2 能够仅更新具有较新版本的功能。
更新:
如果您重用 Eclipse 本身的 UI,则更新存储库应该具有您产品的更高版本,以使 Eclipse 的“安装新软件”/更新对话框显示您产品的较新版本。
如果您使用p2 API安装更新,则不需要更高版本的产品。但是您的产品的原始版本(1.0.0)必须取决于您的功能的版本范围。例如,com.my.company.myproduct_1.0.0 依赖于 com.my.company.feature 从 1.0.0(包含)到 2.0.0(排除)。
关于java - 如何更新 Eclipse RCP 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4283668/