3

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

从 OSGI 控制台检查包时,我有包,它处于活动状态,但版本不同,如下所示。 在此处输入图像描述

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

谢谢

4

3 回答 3

3

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

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

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

  • Eclipse 是使用 Java < 8 启动的。为了确保只需打开 Help -> About Eclipse -> Installation details -> Configuration 并查找 property java.version。这里的解决方案很简单:使用 JVM 1.8+ 运行 Eclipse。
  • 您使用的是非常旧的 Eclipse 版本(< Kepler SR1)。没有 Java 1.8 配置文件,因此即使您使用 JVM 1.8,它也无法工作(请参阅https://bugs.eclipse.org/bugs/show_bug.cgi?id=387699)。Luna 应该是受支持的,但是如果您从旧版本的 Eclipse 升级的话可能会损坏(请参阅如何将执行环境 1.8 添加到 Eclipse Luna?)。尝试全新安装 Luna 或更新版本。
于 2016-08-22T14:08:23.013 回答
1

我看到了同样的问题并在 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))".
于 2016-08-04T16:22:42.180 回答
0

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

于 2016-08-04T06:14:01.143 回答