Что подразумевается под «несвязанной» библиотекой или контейнером classpath в Eclipse?

#java #eclipse #ide #groovy #classpath

#java #eclipse #ide #groovy #classpath

Вопрос:

Хотя недавно я импортировал новый проект в eclipse, в какой-то момент, когда я попытался добавить библиотеку GROOVY_SUPPORT, она отображалась как «несвязанная» с ошибкой-X, вот так:

Библиотека GROOVY_SUPPORT с красной ошибкой-X

Это также не появилось в проводнике пакетов, как я ожидал.

Что именно это означает? Eclipse не сообщало о каких-либо других ошибках. Все, что у меня есть, это красный крест и несвязанное сообщение.

Я смог исправить это с помощью futzing с материалом (в частности, удаляя и повторно добавляя Groovy nature), пока это не исчезло, но мне любопытно, что происходило на самом деле.

Ответ №1:

Обычно это означает, что classpathentry в .classpath не может быть разрешен. Обычно я вижу это при открытии проекта, который был создан / обновлен с помощью другого плагина (или версии), определяющего несвязанный контейнер classpath.

Если вы сравните файл .classpath с момента, когда он был несвязан, и после устранения проблемы, вы должны увидеть разницу.

Устранение проблемы тем способом, который вы сделали (удаление несвязанного содержимого и повторное добавление его, как вы сделали с помощью Groovy nature), — это простой способ устранить проблему. Одно предостережение: если вы являетесь частью команды, работающей над проектом, и у вас возникает эта проблема, было бы неплохо убедиться, что все члены команды находятся в одной версии IDE.

Ответ №2:

Я только что столкнулся с этой точной проблемой. Оказывается, я не установил заводные функции Eclipse SDK. Как только я их установил, GROOVY_SUPPORT больше не был несвязан, и все заработало.

введите описание изображения здесь

Ответ №3:

Встречается в Eclipse 4.5 Mars и GRECLIPSE 2.9.2

У меня было несколько проектов Groovy, импортированных до того, как был установлен GRECLIPSE (но компилятор Groovy находился на пути, и был установлен GROOVY_HOME)

После установки GRECLIPSE проекты не компилировались. Итак, перейдите к

Свойства проекта через выпадающее меню > Путь сборки Java > Библиотеки > Добавить библиотеку

И добавьте «ПОДДЕРЖКУ GROOVY» вручную. Проект компилируется, но:

GROOVY_SUPPORT (несвязанный)

Эту запись нельзя удалить, поскольку это делает невозможной компиляцию. Итак, перейдите к

Свойства проекта через выпадающее меню > Groovy > Удалить Groovy Nature

«Вы хотите также удалить groovy runtime jar из project FOO?» ДА

И обведите:

Свойства проекта через выпадающее меню > Настроить > Преобразовать в Groovy Project

Все компилируется, как и раньше.

Это изменило библиотеки:

Теперь все по-другому

Содержимое «.classpath» изменилось с:

 <classpathentry exported="true" kind="con" path="GROOVY_DSL_SUPPORT"/>
<classpathentry kind="con" path="GROOVY_SUPPORT"/>
  

Для

 <classpathentry exported="true" kind="con" path="GROOVY_SUPPORT"/>
<classpathentry exported="true" kind="con" path="GROOVY_DSL_SUPPORT"/>
  

Содержимое «.project» не изменилось.

 <natures>
   <nature>org.eclipse.jdt.groovy.core.groovyNature</nature>
   <nature>org.eclipse.jdt.core.javanature</nature>
</natures>