it-roy-ru.com

Maven clean + build приводит к тому, что проект в Eclipse показывает ошибки, пока не очистится в Eclipse

Мы получаем очень странное поведение в нашей среде разработки, которое согласуется со всеми нашими разработчиками в разных операционных системах.

У нас есть более 20 проектов Maven (3.0.4) в среде разработки, все они являются открытыми проектами в Eclipse (Indigo) с sonatype m2e (0.12.0), который обрабатывает зависимости как обычно. (m2e 1.0 вызывает у нас больше проблем, чем решений)

Из всех наших 20+ проектов существует один проект, который ведет себя странно . При выполнении mvn clean install для этого проекта, даже если Maven успешно передает успешно, он вызывает 4 файла Java (в модульных тестах если это имеет какое-то значение), чтобы показать ошибки в Eclipse.

Ошибки имеют тип «SomeNameOfClass не может быть преобразован в тип», хотя открытие файла и нажатие F3 (объявление Open) на ошибочной ссылке на класс находит класс без проблем.

Проблема с mvn clean, если мы просто запустим mvn install, этого не произойдет.

Проект Eclipse -> Clean очищает ошибки, и все в порядке.

Это не операционная проблема, которая фактически мешает мне работать или что-то в этом роде, я могу решить ее просто очистив в Eclipse, я просто ненавижу делать это каждый раз, и я не могу терпеть красные X в моих проектах, даже если они не имеют никакого эффекта.

Мне просто очень любопытно, почему это вообще происходит, почему именно эти 4 класса? почему почему почему? :)

21
Enrico

У нас была точно такая же проблема некоторое время назад. У нас было более 20 проектов с одинаковыми ошибками. Из проведенного нами исследования мы пришли к выводу, что при запуске maven clean install Eclipse теряет отслеживание файлов классов и считает, что некоторые из них не определены. Решение, которое у нас было, это выдать следующее в командной строке:

mvn Eclipse:clean
mvn clean install
mvn Eclipse:eclipse
22
GETah

Теперь можно указать, что проекты должны обновляться после завершения на вкладке Refresh в Run configuration. Вам придется проверить Refresh resources upon completion и выбрать, какое поведение ниже.

0
Ludovic Guillaume