【问题标题】:RCP p2 updating: Only one of the following can be installed at onceRCP p2 更新:一次只能安装以下之一
【发布时间】:2012-10-01 19:36:19
【问题描述】:

我创建了一个启用 p2 的 RCP 应用程序。添加了 ui,也可以添加更新站点。

但添加新软件(已安装),会发生这种情况:

Your original request has been modified.
  "Help" is already installed, so an update will be performed instead.
Cannot complete the install because of a conflicting dependency.
  Software being installed: Help 1.0.0.201210110844 (smartapps.smartsignature.features.help.feature.group 1.0.0.201210110844)
  Software currently installed: SmartSignature 1.0.0.201210110831 (smartapps.smartsignature.application.product 1.0.0.201210110831)
  Only one of the following can be installed at once: 
    Help 1.0.0.201210110844 (smartapps.smartsignature.features.help.feature.jar 1.0.0.201210110844)
    Help 1.0.0.201210110831 (smartapps.smartsignature.features.help.feature.jar 1.0.0.201210110831)
  Cannot satisfy dependency:
    From: SmartSignature 1.0.0.201210110831 (smartapps.smartsignature.application.product 1.0.0.201210110831)
    To: smartapps.smartsignature.features.help.feature.group [1.0.0.201210110831]
  Cannot satisfy dependency:
    From: Help 1.0.0.201210110831 (smartapps.smartsignature.features.help.feature.group 1.0.0.201210110831)
    To: smartapps.smartsignature.features.help.feature.jar [1.0.0.201210110831]
  Cannot satisfy dependency:
    From: Help 1.0.0.201210110844 (smartapps.smartsignature.features.help.feature.group 1.0.0.201210110844)
    To: smartapps.smartsignature.features.help.feature.jar [1.0.0.201210110844]

嗯,这就是 p2 的全部意义......我认为有一个原因可能会导致错误,但我不知道如何实际修复它。

存储库中的功能是否可能与基础 RCP 应用程序中安装的功能不同?在安装 p2 时检测到它是相同的功能,但仍然认为它是不同的,因为它有不同的来源?这有意义吗?

【问题讨论】:

标签: java eclipse eclipse-rcp p2


【解决方案1】:

嗯,我想通了...这只是一个依赖问题。

我的应用产品是基于这些功能的一个版本。所以安装另一个版本失败了。

我刚刚将我的应用功能添加为产品的依赖项,并将我的所有(可更新)功能包含在此应用功能中。包含它们时,您可以将 Feature 设置为 Optional。

将此功能设置为可选仍会将其包含在您的产品构建中,但它允许您一次仅执行一项功能的独立更新!

【讨论】:

  • 您能否详细解释一下您是如何解决问题的?
  • 似乎没有使用忽略标志 - 如果遇到冲突的依赖问题,它会忽略功能更新。如果您不设置可选项,则会显示显式错误。
【解决方案2】:

“一次只能安装以下其中一项”表示您尝试安装的工件不能共存于一个安装配置文件中。

这很可能是由“Bundle-SymbolicName”OSGi 清单头的“singleton:=true”指令引起的,该指令不允许在一个环境中多次安装使用(或声明)Eclipse 扩展点的包.

【讨论】:

    【解决方案3】:

    问题可能是您的匹配器值是完美/等效/兼容的。那么旧版本将不接受您的更新,因为依赖项不兼容。

    查看您的功能并检查是否有类似的内容:

    <import plugin="smartapps.smartsignature.features.help.feature.group" version="1.0.0.201210110831" match="..."/>
    

    匹配的可能值是:

     (perfect | equivalent | compatible | greaterOrEqual)
    

    确保它是greaterOrEquals。这应该可以解决您的问题。

    【讨论】:

      猜你喜欢
      • 2013-01-26
      • 2012-06-19
      • 2016-08-05
      • 2011-04-24
      • 1970-01-01
      • 2013-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多