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

Ответ 1

Это правильное поведение. Текущая версия 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- хранилище

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

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

,

Я бы порекомендовал вам выполнить "Run As → Maven → clean", а затем "Project → Clean", а затем включить автоматическое наращивание (это позволит сделать автоматическую сборку на основе Eclipse, не использовать Run As → Maven чтобы построить, чтобы проверить этот момент). Теперь откройте диспетчер файлов вне eclipse и вручную проверите выходные папки для ресурсов, которые, как вы считали, не копируются. Вы должны найти, что они все равно.

,

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

Поэтому несколько раздражает, что вы всегда ожидаете проверки элементов в крупном проекте.

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

Ответ 2

T_T не является хорошим решением. ресурсы не копируются без maven-update


Ресурсы maven: этапы ресурсов, отмеченные как игнорируемые в Lifecycle Mappings, вызовут эту проблему.

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

чтобы проверить этот открытый

project- > properties- > maven- > отображение жизненного цикла

и посмотрите, игнорируются ли ресурсы: ресурсы отмечены или нет.

чтобы решить эту проблему windows- > preference- > maven- > отображение жизненного цикла- > метаданные отображения жизненного цикла рабочей среды

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

  <action>
    <ignore />
  </action>

к

  <action>
    <execute />
  </action>

для цели resources

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

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