【问题标题】:Updating features which depend on the same library as other features - p2 error "Only one of the following can be installed at once"更新依赖于与其他功能相同的库的功能 - p2 错误“一次只能安装以下之一”
【发布时间】:2013-01-26 16:44:54
【问题描述】:

我的项目中有以下结构:

产品“P”基于功能“FA”,该功能基于依赖于 Libray-Plugin“PL”的插件“PA”。我可以导出整个产品,一切正常。

现在我想通过我的更新站点安装不同的模块。例如:Modul "M" 这实际上是一个名为 "FB" 的功能,它基于依赖于 Library-Plugin "PL" 的插件 "PB"。我最初能够安装模块(功能)。此时,Library-Plugin 的版本为“1.0.0”。

当我更改模块(功能)并将 FB、PB 和 PL 的版本增加到 1.0.1 然后尝试安装它时,p2 显示以下错误:

Cannot complete the install because of a conflicting dependency.
 Software being installed: Modul Feature B - FB 1.0.1
 Software currently installed: Product P with Feature A - FA 1.0.0
 Only one of the following can be installed at once: 
  Library-Plugin - PL 1.0.0
  Library-Plugin - PL 1.0.1
Cannot satisfy dependency:
 From: Modul Feature B - FB 1.0.1
 To: Library-Plugin - PL 1.0.1
Cannot satisfy dependency:
 From: Product P with Feature A - FA 1.0.0
 To: Library-Plugin - PL 1.0.0

我做错了什么?对于依赖于与其他已安装功能或产品相同的库插件的功能模块,我可以做些什么来部署升级?

【问题讨论】:

    标签: eclipse dependencies rcp p2


    【解决方案1】:

    问题是您在功能 FA 和 FB 中包含插件的依赖项(即库插件 PL)。这样一来,每个功能都将 PL 的版本限制为一个确切的版本,因此如果您尝试独立更新 FA 或 FB,p2 将需要安装多个版本的 PL。对于大多数捆绑包来说这是不可能的(因为大多数捆绑包都是单例的)。

    相反,您的功能应该只包含您自己的包 PA 和 PB。这样,产品 P 的安装仍然会包含 PL(因为使用 p2 创建的产品安装始终包含所有依赖项),但是您将不再收到 PL 插件的“一次只能安装以下一项”错误.这是因为 PA 和 PB 通常依赖于具有版本范围的 PL(甚至可能根本没有版本限制),因此只要您的更新站点上有可用的新版本,PL 就可以由 p2 更新。

    【讨论】:

      猜你喜欢
      • 2012-10-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-09
      • 1970-01-01
      • 2018-12-10
      • 2014-03-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多