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 успешно прошел successfully, он заставляет 4 java файла (в модульных тестах, если это имеет какое-либо значение) показывать ошибки в Eclipse.
Ошибки имеют тип "SomeNameOfClass не может быть преобразован в тип", хотя открытие файла и нажатие F3 (объявление Open) на ошибочной ссылке на класс находит класс без проблем.
Проблема в mvn clean
, если мы просто запустим mvn install
, этого не произойдет.
Eclipse Project → Clean очищает ошибки, и все в порядке.
Это не операционная проблема, которая фактически мешает мне работать или что-то в этом роде, я могу решить ее, просто убрав в Eclipse, я просто ненавижу делать это каждый раз и могу " в моих проектах не стоят красные иксы, даже если они не имеют никакого эффекта.
Мне просто очень любопытно, почему это вообще происходит, почему именно эти 4 класса? почему почему почему? :)
Ответы
Ответ 1
У нас была одна и та же проблема некоторое время назад. У нас было более 20 проектов, дающих такую же ошибку. Из проведенного расследования мы пришли к выводу, что при запуске maven clean install
eclipse теряет отслеживание файлов классов и считает, что некоторые из них undefined.
Решение, которое мы получили, состоит в том, чтобы в командной строке вывести следующее:
mvn eclipse:clean
mvn clean install
mvn eclipse:eclipse
Ответ 2
Теперь можно указать, что проект нуждается в обновлении после завершения на вкладке Refresh
в Run configuration
. Вам нужно будет проверить Refresh resources upon completion
и выбрать, какое поведение ниже.
Ответ 3
Я обнаружил, что наличие jar в maven в качестве области "test" вызовет ошибку "unresolved type", и ничто из найденного мной пока не исправит его, кроме как вытащить его из области действия test в файле pom.