Как устранить отсутствующий необходимый пакет для затмения SonarLint

У меня проблема с загрузкой SonarLint 2.2.0 в моем Eclipse Luna. В официальном веб-документе говорится, что для Eclipse Luna поддерживается версия 2.2.0. Я также могу без проблем установить SonarLint из Eclipse Marketplace. Но при перезапуске eclipse SonarLint не может загрузиться. Диагностируя плагин, я обнаружил, что в нем отсутствуют некоторые пакеты, как показано на изображении ниже. введите здесь описание изображения

При проверке пакета из консоли OSGI у меня был пакет, и он был в состоянии АКТИВНО, но другой версии, как показано ниже. введите здесь описание изображения

Глядя на это, я не думаю, что мне следует понизить версию равноденствия до версии 0.0.0, если таковая имеется. И не знаю, как мне с этим справиться. Любая помощь будет оценена, ребята.

Спасибо


person Mani Rai    schedule 02.08.2016    source источник
comment
Просто проверяю: убедились ли вы, что ваш Eclipse работает с Java 8?   -  person Nicolas B. - SonarSource Team    schedule 18.08.2016
comment
Я не совсем помню. Я, вероятно, запускал свое затмение в Java 7. Позвольте мне проверить его с помощью Java 8.   -  person Mani Rai    schedule 18.08.2016
comment
@Nicolas: Извините за поздний ответ, я был очень занят. Я попытался запустить eclipse с Java 8. Sonarlint все еще не загружается.   -  person Mani Rai    schedule 20.08.2016
comment
Я только что сделал тест, используя свежий Luna SR2 + JDK 1.8 + SonarLint 2.2.0, и все работает нормально. Можете ли вы уточнить, что это за инструмент диагностики? И FYI 0.0.0 означает, что любая версия будет работать.   -  person Julien H. - SonarSource Team    schedule 22.08.2016


Ответы (3)


Версия 2.2.0 SonarLint для Eclipse перенесена на Java 8 (как и библиотека SonarLint Core). Как следствие, МАНИФЕСТ всех этих пакетов был обновлен, чтобы требовать среду выполнения JavaSE-1.8.

Если ваша установка Eclipse не может обеспечить это требование, подключаемый модуль SonarLint не будет загружен. Я согласен, что этот молчаливый сбой — это позор, но если у вас есть идеи, как его улучшить, дайте мне знать.

Возможные причины, по которым ваш Eclipse не поддерживает JavaSE-1.8:

  • Eclipse был запущен с Java ‹ 8. Чтобы убедиться, просто откройте Справка -> О Eclipse -> Сведения об установке -> Конфигурация и найдите свойство java.version. Здесь решение простое: запустите Eclipse с JVM 1.8+.
  • Вы используете очень старую версию Eclipse (‹ Kepler SR1). Профиля Java 1.8 нет, поэтому он не будет работать, даже если вы используете JVM 1.8 (см. https://bugs.eclipse.org/bugs/show_bug.cgi?id=387699). Предполагается, что Luna поддерживается, но если вы обновили более старую версию Eclipse, она может быть повреждена (см. environment-1-8-to-eclipse-luna">Как добавить среду исполнения 1.8 в Eclipse Luna?). Попробуйте новую установку Luna или более новую версию.
person Julien H. - SonarSource Team    schedule 22.08.2016
comment
Спасибо, Жюльен... Java-версия была настоящей проблемой. Извините за мою глупость не читать документы должным образом. - person Mani Rai; 25.08.2016

Я вижу ту же проблему и запускаю диагностику в консоли OSGi. Я обнаружил, что пакеты SonarLint eclipse содержат ссылки на версии 2.3.1 основных пакетов SonarLint, в то время как полезная нагрузка подключаемого модуля включает версии 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))".
person Mike Middleton    schedule 04.08.2016
comment
у меня такая же мысль. Пытался сообщить об этом как об ошибке, но не могу найти способ. Я думаю, что они отключили функцию сообщения о проблемах в своей учетной записи github. - person Mani Rai; 05.08.2016
comment
Ребята, насколько мне известно, в OSGi наличие МАНИФЕСТА, запрашивающего версию XY зависимости, означает любую версию, большую или равную XY. Ваша настоящая проблема заключается в отсутствующей возможности JavaSE-1.8. - person Julien H. - SonarSource Team; 22.08.2016

Добавили ли вы эти плагины как «Обязательный пакет» в свой манифест?

person Nilesh Vora    schedule 04.08.2016
comment
Никакой дополнительной настройки для этого плагина не проводилось. Я только что установил его из Eclipse Marketplace, и плагин просто не загружается. - person Mani Rai; 04.08.2016
comment
Перейдите в каталог eclipse из командной строки и введите eclipse.exe -clean - person Nilesh Vora; 05.08.2016
comment
Я начал затмение, используя чистый аргумент, используя свой CLI. Я не увидел никакого эффекта от этого аргумента. - person Mani Rai; 05.08.2016