我正在尝试使用第三方工具(即 IBM Installation Manager)将 Eclipse 产品安装到现有的 Eclipse 安装中,但它失败了,并出现了一些此类错误
CRIMA1054E: 将捆绑包“org.eclipse.equinox.p2.repository.tools_2.0.1.R36x_v20100823”安装到此现有 Eclipse 安装中不满足现有捆绑包“org”的“[2.0.100,3.0.0)”版本容差.eclipse.pde.ui"
不幸的是,我无法透露受影响产品的任何细节,所以我想把它变成一个更笼统的问题。
在对 Eclipse 平台进行了一些研究之后,我的理解是它是 OSGi 规范的关键特性之一,应该能够将同一个包(≘ 插件?)的多个版本安装到同一个环境中。如果包org.eclipse.pde.ui已经存在,我假设它所需的[...].p2.repository.tools版本也已经可用。
我的问题:为什么将另一个版本的插件添加到环境中会是一个问题?我对 Eclipse 和 OSGi 有什么误解吗?
附带问题:版本2.0.1.R36[...]不应该在[2.0.100,3.0.0)内吗?不过,这并没有真正影响我的主要问题,因为我还有其他明显超出容忍范围的示例。
一些初步的想法和理论
即使 Eclipse 允许插件的并行版本,一些插件仍然与它们自己的其他版本发生冲突。尽管如此,我还是希望出现更多错误,例如“[...].repository.tools_x 与现有捆绑包 org.eclipse.pde.ui 所需的 [...].repository.tools_y 不兼容”
安装不会被 Eclipse 阻止,而是被 IBM Installation Manager 阻止。它可能会进行一些内部依赖检查,但懒得考虑并行捆绑版本安装。
再次关于该特定产品:不幸的是,该产品无法通过常规 Eclipse 软件安装机制获得。我还想避免手动将其放入我的 Eclipse 中,因为我依赖于定期更新,而这些更新仅通过 IBM Installation Manager 提供。