Maven/M2Eclipse все время исключает мои ресурсы

У меня есть две очень неприятные проблемы с интеграцией Maven-Eclipse, время от времени она исключает все мои ресурсы в src/main/resources и src/test/resources из пути сборки.

Если я проверю «Свойства >> Путь сборки Java >> Источник», я увижу, что эти две папки имеют «Исключено: **».

Проблему можно легко решить, нажав «Удалить» в исключениях, но это действительно очень неприятно.

Настройка проекта очень проста, есть несколько модулей и подмодулей, но ничего особенного. У меня нет никаких параметров конфигурации в моем pom.xmls, касающихся ресурсов, затмения или чего-то еще (может быть, я должен?).

Другая проблема заключается в том, что Eclipse продолжает сообщать о предупреждениях в «целевых» каталогах (в представлении «Проблемы»), на которые ему вообще наплевать.

Ps: Springsource Tool Suite 2.7.0.RELEASE, интеграция Maven для Eclipse 0.12.1.20110112, Maven 2.2.1


person nihilist84    schedule 13.10.2011    source источник
comment
Вы решили это?   -  person Anmol Gupta    schedule 11.06.2016
comment
Можете ли вы отредактировать этот вопрос, чтобы он содержал один вопрос вместо двух? @AnmolGupta, разве принятое решение не работает для вас?   -  person Line    schedule 10.10.2018


Ответы (3)


Это правильное поведение. Текущая версия M2E предоставляет собственный компонент для автоматического процесса сборки внутри Eclipse IDE. Этот процесс сборки учитывает жизненный цикл maven для ресурсов генерации и ресурсов процесса и т. д. т. е. в некоторых проектах есть плагины, которые генерируют ресурсы из конфигурации и помещают в скомпилированную выходную папку.

Механизм, на который вы смотрите в пути сборки, относится только к встроенному механизму Eclipse IDE для компиляции/сборки набора входных исходных папок в выходные папки. Если бы и Maven, и Eclipse сделали это, возникли бы конфликты/проблемы.

В FAQ по M2E есть ссылка на этот пункт https://www.eclipse.org/m2e/documentation/m2e-faq.html#how-to-configure-proxy-and-location-of-maven-local-repository

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

Возможно, вы захотите перейти на org.eclipse.m2e и Indigo, так как многие сложные проблемы/использование Maven, которые у меня есть, в основном решены или имеют объясненное решение.

.

Я бы порекомендовал вам выполнить «Запуск от имени -> Maven -> очистить», а затем «Проект -> Очистить», а затем включить автоматическую сборку (это позволяет выполнять автоматическую сборку на основе Eclipse, не используйте Запуск от имени -> Maven построить, чтобы проверить этот момент). Теперь откройте файловый менеджер вне eclipse и вручную проверьте выходные папки на наличие ресурсов, которые, по вашему мнению, не копируются. Вы должны найти, что они там точно такие же.

.

Я согласился с (вероятно, проверкой) предупреждением об элементах в каталоге target/**, и, хотя у Eclipse есть способ вручную исключить каталог target/** из проверки, эта опция не выходит за пределы чистоты проекта (когда целевой каталог удален).

Поэтому несколько раздражает постоянное ожидание проверки элементов в большом проекте.

Возможно, я попытаюсь посмотреть, можно ли создать подключаемый модуль Maven Eclipse для этого, то есть привязать к жизненному циклу сборки и автоматически применить Exclude Validation к целевой папке.

person Darryl Miles    schedule 13.10.2011
comment
Большое спасибо за ваш подробный ответ. - person nihilist84; 14.10.2011
comment
исключение **, верно и так и должно быть, вы, очевидно, не поняли объяснение, почему оно правильное, пожалуйста, изучите и прочитайте еще раз. - person Darryl Miles; 27.12.2014
comment
к сожалению, это означает, что запуск тестов JUnit, основанных на файлах контекста, усложняется, потому что Eclipse не видит ресурсы/** :( - person Jaroslav Záruba; 02.08.2016
comment
Это также немного неудобно, когда вы работаете с функциональностью UiBinder GWT. Maven не разрешает XML-файлы в исходном коде, но затем не позволяет подключаемому модулю GWT видеть их в процессе разработки. Я удаляю фильтр . и все в порядке, пока мне не нужно обновить зависимость. Должен быть вариант. - person JRSofty; 10.11.2016

Т_Т не лучшее решение. ресурсы не копируются без maven-update


maven resources: фаза ресурсов, помеченная как проигнорированная в сопоставлениях жизненного цикла, вызовет эту проблему.

Как указывал Майлз выше, eclipse не копирует ресурс, поскольку предполагает, что maven сделает это за вас. Затем, если фаза ресурсов: ресурсы, которые выполняют задание в maven, не выполняются, вы получаете исключение файла, не найденного во время выполнения.

проверить это открыто

проект- > свойства- > maven- > сопоставление жизненного цикла

и посмотрите, отмечены ли ресурсы: ресурсы как проигнорированные или нет.

чтобы решить эту проблему, Windows- > Preference- > Maven- > сопоставление жизненного цикла- > открытые метаданные сопоставления жизненного цикла рабочего пространства

затем изменить

  <action>
    <ignore />
  </action>

to

  <action>
    <execute />
  </action>

для цели resources

перезагрузить метаданные и обновить проект maven

должен решить проблему.

person owensss    schedule 14.11.2016
comment
FWIW, вы установили соединитель m2e для build-helper-maven-plugin? Вам все еще нужен приведенный выше ответ? Насколько я понимаю, это заставляет многие цели/плагины, которые влияют на путь к классам/построение, работать так, как ожидалось. - person Darryl Miles; 05.01.2017

Шаг 1. Удалите проект из eclipse. Шаг 2. Импортируйте проект заново. Шаг 3. Перейдите в папку, которую необходимо добавить в качестве исходной папки.

См. снимок экрана ниже: введите здесь описание изображения

person Sujeet    schedule 14.01.2019
comment
Ваше изображение больше недоступно. - person Mike Stoddart; 30.08.2019