Подтвердить что ты не робот

Как обрабатывать накладки Maven WAR в Eclipse?

У меня есть мультимодульный проект Maven, который использует WAR-накладки (стек из них 3 глубины). Все отлично работает в Maven, но я не могу запустить свою WAR из Eclipse, потому что жалуется на то, что не нашел различные файлы.

Как настроить Eclipse (и запускающую программу), чтобы я мог запускать свою WAR с Eclipse без необходимости первой установки Maven? Я должен добавить, что мои проекты Eclipse WAR не являются динамичными веб-проектами... это часть того, что мне нужно делать?

ПРИМЕЧАНИЕ. Следующий вопрос затрагивает тему, но ответ указывает, что вы всегда должны сначала установить Maven, и я знаю, что это невозможно, потому что есть люди, которые используют Eclipse без Maven.

Наложения Maven и Eclipse

Я также нашел это, что заставляет меня думать, что это невозможно через ваниль M2E:

http://jira.codehaus.org/browse/MNGECLIPSE-599

4b9b3361

Ответ 1

Я смог выполнить это, и все работает отлично. Вот что делать:

Прежде всего вам нужен плагин M2E Eclipse, который необходим, чтобы Eclipse автоматически распознавал и обновлял зависимости Maven. Он также предоставляет красивый графический редактор POM. По состоянию на конец 2011 года проект M2Eclipse был пожертвован Фондом Eclipse сонатом и теперь называется просто M2E. Тем не менее, он по-прежнему не поставляется с выпуском Java EE Eclipse Indigo и должен быть установлен отдельно через сайт обновлений

В прошлом интеграция между Eclipse и Maven была несколько хлопотной. Тем не менее, эта новая интеграция Maven в Eclipse теперь осознает тот факт, что в POM файлах есть много плагинов Maven и что только определенные цели некоторых плагинов имеют смысл в среде IDE. Кроме того, те цели, которые имеют смысл при работе внутри IDE, могут нуждаться в специальной конфигурации. Для правильной работы с этим M2E теперь поддерживается понятие "коннектор"

M2E имеет длинный список специальных разъемов, которые позволяют ему делать "правильную вещь" при вызове различных моджо (цели плагина Maven). Чтобы просмотреть список доступных разъемов в Eclipse, перейдите в диалог настроек и выберите Maven- > Dicovery- > Open Catalog. Предполагается, что эти соединители устанавливаются автоматически при обнаружении в файле {{pom.xml}} во время импорта проекта. Однако для этого требуется правильная версия мастера импорта M2E Maven (который Indigo не имеет до SR2).

Кроме того, иногда эти разъемы являются ошибками, и нам нужно использовать ночные или бета-версии для получения последних исправлений. Если у вас установлена ​​более старая или баггированная версия, вам необходимо удалить и повторно импортировать проекты после обновления. По этим причинам, на мой взгляд, все соединители M2E должны быть установлены вручную до импорта вашего проекта в Eclipse.

Разъем M2E-WTP - это тот, который вам нужен, чтобы накладывать WAR-накладки в пусковых установках Eclipse для Eclipse "Servers". Этот соединитель используется для интеграции Maven с WTP... и таким образом обрабатывает WAR-накладки, настройку контейнера сервлетов, конфигурацию WTP Eclipse, настройку корневого контекста и другие вещи, которые все направлены на создание веб-инструмента Eclipse "Just Work", когда модуль Maven WAR импортируется в Eclipse в качестве проекта.

Сайт обновления для соединителя m2e-wtp: http://download.jboss.org/jbosstools/updates/m2eclipse-wtp/

Добавьте этот сайт M2E-WTP и установите соединитель. Обратите внимание, однако, что ни M2E, ни соединитель M2E-WTP не будут устанавливать зависимости WAR WAR в WAR. Вы должны сделать это, добавив необходимые зависимости к окончательному WAR pom.xml. Я не знаю, почему инструменты не делают этого, но они этого не делают - так просто передержитесь.; -)

На этом этапе я также рекомендую сделать полное обновление с помощью {{Help- > Check for Updates}}. Как только это будет сделано, вы сможете просто добавить сервер Eclipse, щелкнуть на своем проекте (а не накладывать один, но обычный) и выбрать "Запустить на сервере...".

Изменения, внесенные в WAR или оверлейную WAR, будут автоматически опубликованы на ваш сервер. Изменения в Javascript публикуются без перезагрузки сервера... все, что вам нужно сделать, это нажать обновление в браузере, чтобы увидеть, как работает новый код.

Второе обновление. В M2E есть ошибка (https://issues.sonatype.org/browse/MECLIPSEWTP-174), которая может привести к WEB- INF/lib случайно потерял все свои JAR файлы. Когда это произойдет, ваше приложение сервлета, очевидно, не запустится. Обходной путь - очистить сервер, щелкнув прямо на сервере и выбрав "clean". Обратите внимание, что очистка только рабочего каталога не приведет к восстановлению этих отсутствующих JAR.