【问题标题】:How to resolve missing required bundle for SonarLint eclipse如何解决 SonarLint eclipse 缺少所需的捆绑包
【发布时间】:2016-12-08 11:42:43
【问题描述】:

我在我的 Eclipse Luna 中加载 SonarLint 2.2.0 时遇到问题。官网文档说 Eclipse Luna 支持 2.2.0 版本。我也可以毫无问题地从 Eclipse Marketplace 安装 SonarLint。但是在 Eclipse 重启时,SonarLint 无法加载。诊断插件,我发现有一些丢失的包,如下图所示。

从 OSGI 控制台检查包时,我有包,它处于活动状态,但版本不同,如下所示。

看看这个,我认为我不应该将 Equinox 降级到版本 0.0.0(如果有的话)。而且不知道我该如何处理。任何帮助将不胜感激。

谢谢

【问题讨论】:

  • 只是检查一下:您确定您的 Eclipse 运行的是 Java 8 吗?
  • 我不太记得了。我可能在 Java 7 中运行我的 Eclipse。让我用 Java 8 来检查一下。
  • @Nicolas:抱歉回复晚了,我很忙。我尝试使用 Java 8 运行 eclipse。仍然没有加载 sonarlint。
  • 我刚刚使用新的 Luna SR2 + JDK 1.8 + SonarLint 2.2.0 进行了测试,一切正常。你能准确地说这个诊断工具是什么吗?仅供参考 0.0.0 意味着任何版本都可以使用。

标签: eclipse eclipse-plugin sonarlint sonarlint-eclipse


【解决方案1】:

您是否已将这些插件作为“必需捆绑包”添加到您的清单中?

【讨论】:

  • 这个插件没有进一步的配置。我刚刚从 Eclipse Marketplace 安装了它,但插件无法加载。
  • 从命令行进入eclipse目录并输入eclipse.exe -clean
  • 我使用我的 CLI 使用 clean 参数启动了 eclipse。我没有看到这个论点的影响。
【解决方案2】:

我看到了同样的问题,并在 OSGi 控制台中运行了 diag。 我发现 SonarLint eclipse 包引用了核心 SonarLint 包的 2.3.1 版本,而插件负载包括核心包的 2.4.0 版本。

例如:diag 命令显示 sonarlint.eclipse.core 包引用 sonarlint-client-api_2.3.1,而插件有效负载包括 sonarlint-client-api_2.4.0。

注意:我在 OP 提供的诊断窗口底部看到了相同的版本问题。

我认为 SonarLint 2.2 包需要使用正确的包版本重新构建/重新打包。

这是我的 OSGi 控制台输出供参考。

osgi> ss
...
1241    INSTALLED   org.sonarlint.eclipse.core_2.2.0.201607291419-RELEASE
1242    INSTALLED   org.sonarlint.eclipse.jdt_2.2.0.201607291419-RELEASE
1243    INSTALLED   org.sonarlint.eclipse.ui_2.2.0.201607291419-RELEASE
1244    INSTALLED   org.sonarsource.sonarlint.core.sonarlint-client-api_2.4.0
1245    INSTALLED   org.sonarsource.sonarlint.core.sonarlint-core_2.4.0


osgi> diag 1241
reference:file:plugins/org.sonarlint.eclipse.core_2.2.0.201607291419-RELEASE.jar [1241]
  Direct constraints which are unresolved:
    Missing required bundle org.sonarsource.sonarlint.core.sonarlint-client-api_2.3.1.
    Missing required bundle org.sonarsource.sonarlint.core.sonarlint-core_2.3.1.
    Missing required capability Require-Capability: osgi.ee; filter="(&(osgi.ee=JavaSE)(version=1.8))".
  Leaf constraints in the dependency chain which are unresolved:
    reference:file:plugins/org.sonarsource.sonarlint.core.sonarlint-core_2.4.0.jar [1245]
      Missing required capability Require-Capability: osgi.ee; filter="(&(osgi.ee=JavaSE)(version=1.8))".
    reference:file:plugins/org.sonarsource.sonarlint.core.sonarlint-client-api_2.4.0.jar [1244]
      Missing required capability Require-Capability: osgi.ee; filter="(&(osgi.ee=JavaSE)(version=1.8))".

osgi> diag 1242
reference:file:plugins/org.sonarlint.eclipse.jdt_2.2.0.201607291419-RELEASE.jar [1242]
  Direct constraints which are unresolved:
    Missing required bundle org.sonarlint.eclipse.core_0.0.0.
    Missing required capability Require-Capability: osgi.ee; filter="(&(osgi.ee=JavaSE)(version=1.8))".
  Leaf constraints in the dependency chain which are unresolved:
    reference:file:plugins/org.sonarsource.sonarlint.core.sonarlint-core_2.4.0.jar [1245]
      Missing required capability Require-Capability: osgi.ee; filter="(&(osgi.ee=JavaSE)(version=1.8))".
    reference:file:plugins/org.sonarsource.sonarlint.core.sonarlint-client-api_2.4.0.jar [1244]
      Missing required capability Require-Capability: osgi.ee; filter="(&(osgi.ee=JavaSE)(version=1.8))".
    reference:file:plugins/org.sonarlint.eclipse.core_2.2.0.201607291419-RELEASE.jar [1241]
      Missing required capability Require-Capability: osgi.ee; filter="(&(osgi.ee=JavaSE)(version=1.8))".

osgi> diag 1243
reference:file:plugins/org.sonarlint.eclipse.ui_2.2.0.201607291419-RELEASE.jar [1243]
  Direct constraints which are unresolved:
    Missing required bundle org.sonarlint.eclipse.core_0.0.0.
    Missing imported package org.sonarsource.sonarlint.core.client.api.connected_0.0.0.
    Missing imported package org.sonarsource.sonarlint.core.client.api.util_0.0.0.
    Missing required capability Require-Capability: osgi.ee; filter="(&(osgi.ee=JavaSE)(version=1.8))".
  Leaf constraints in the dependency chain which are unresolved:
    reference:file:plugins/org.sonarsource.sonarlint.core.sonarlint-core_2.4.0.jar [1245]
      Missing required capability Require-Capability: osgi.ee; filter="(&(osgi.ee=JavaSE)(version=1.8))".
    reference:file:plugins/org.sonarsource.sonarlint.core.sonarlint-client-api_2.4.0.jar [1244]
      Missing required capability Require-Capability: osgi.ee; filter="(&(osgi.ee=JavaSE)(version=1.8))".
    reference:file:plugins/org.sonarlint.eclipse.core_2.2.0.201607291419-RELEASE.jar [1241]
      Missing required capability Require-Capability: osgi.ee; filter="(&(osgi.ee=JavaSE)(version=1.8))".

osgi> diag 1244
reference:file:plugins/org.sonarsource.sonarlint.core.sonarlint-client-api_2.4.0.jar [1244]
  Direct constraints which are unresolved:
    Missing required capability Require-Capability: osgi.ee; filter="(&(osgi.ee=JavaSE)(version=1.8))".

osgi> diag 1245
reference:file:plugins/org.sonarsource.sonarlint.core.sonarlint-core_2.4.0.jar [1245]
  Direct constraints which are unresolved:
    Missing required bundle org.sonarsource.sonarlint.core.sonarlint-client-api_2.4.0.
    Missing required capability Require-Capability: osgi.ee; filter="(&(osgi.ee=JavaSE)(version=1.8))".
  Leaf constraints in the dependency chain which are unresolved:
    reference:file:plugins/org.sonarsource.sonarlint.core.sonarlint-client-api_2.4.0.jar [1244]
      Missing required capability Require-Capability: osgi.ee; filter="(&(osgi.ee=JavaSE)(version=1.8))".

【讨论】:

  • 我也有同样的想法。试图将其报告为错误,但找不到方法。我认为他们在他们的 github 帐户中禁用了问题报告功能。
  • 伙计们,OSGi 中的 AFAIK 有一个 MANIFEST 请求依赖项的 X.Y 版本意味着任何大于或等于 X.Y 的版本。您真正的问题是缺少 JavaSE-1.8 的功能。
【解决方案3】:

SonarLint for Eclipse 2.2.0 版移至 Java 8(以及库 SonarLint Core)。因此,所有这些包的清单都更新为需要 JavaSE-1.8 执行环境。

如果您的 Eclipse 安装无法满足此要求,则不会加载 SonarLint 插件。我同意这种无声的失败是一种耻辱,但如果您对如何改进有任何想法,请告诉我。

您的 Eclipse 不提供 JavaSE-1.8 的可能原因:

  • Eclipse 是使用 Java 关于 Eclipse -> 安装详细信息 -> 配置并查找属性 java.version。这里的解决方案很简单:使用 JVM 1.8+ 运行 Eclipse。
  • 您使用的是非常旧的 Eclipse 版本 (https://bugs.eclipse.org/bugs/show_bug.cgi?id=387699)。 Luna 应该是受支持的,但如果您从旧版本的 Eclipse 升级,可能会损坏(请参阅How do I add execution environment 1.8 to Eclipse Luna?)。尝试全新安装 Luna 或更新版本。

【讨论】:

  • 谢谢 Julien... Java 版本才是真正的问题。对不起,我没有正确阅读文档的愚蠢。
猜你喜欢
  • 2018-05-09
  • 1970-01-01
  • 1970-01-01
  • 2015-06-12
  • 2023-03-12
  • 2018-09-29
  • 2010-10-15
  • 1970-01-01
  • 2010-11-04
相关资源
最近更新 更多