Почему Maven может игнорировать обновленные классы во время установки? - PullRequest
3 голосов
/ 19 июля 2010

Я видел странное поведение из моей установки Maven 2.2.1 во время установки war.

Иногда я обновляю класс, но обновленная версия не упакована в артефакт, созданный установкой mvn..

Пока что я определил, что обновленный файл .class создается в целевом каталоге, и что класс с тем же именем в создаваемом .war не одинаков (другая дата изменена, другой размер)

Запуск Maven из командной строки с флагом -X дал отладочный вывод для класса, например:

[DEBUG] * WEB-INF / classes / mypackage / MyClass.classобновлен.

Я думаю, что у меня также была такая же проблема раньше, когда файл, который был кэширован (?), был неполной компиляцией из Eclipse, вызывая ошибки 'Unresolved Compilation Problem' из-заСборка Maven, но рабочий артефакт из экспорта Eclipse.

  • Как Maven определяет, актуален ли файл в процессе установки?
  • Где находятся файлы, которые сравнивает Maven?
  • Могу ли я заставить Maven создать пакет с нуля?
  • Будут признательны за любые другие идеи!

1 Ответ

8 голосов
/ 19 июля 2010

Пока что я определил, что обновленный файл .class создается в целевом каталоге, и что класс с тем же именем в создаваемом .war не одинаков (другая дата изменена, другой размер)

Просто чтобы быть уверенным, классы должны быть построены в target\classes, а не target.

  • Могу ли я заставить Maven собрать пакет изscratch?

Вы можете принудительно выполнить полную сборку, запустив

mvn clean install

. Перед выполнением установки выполняется clean (по существу, удаляется каталог target)фаза.

Также - проверьте наличие копий ваших классов вне директории сборки Maven.В этом случае, поскольку это веб-приложение, отметьте src/main/webapp/WEB-INF/classes

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...