Как импортировать многомодульный проект Maven из SVN в Eclipse (Indigo), чтобы дочерние модули можно было создавать независимо? - PullRequest
3 голосов
/ 27 октября 2011

Я пытался опубликовать этот вопрос на форумах Eclipse Maven, но он кажется очень тихим, поэтому здесь все идет ...

Моя настройка: -Eclipse Indigo Java EE bundle -m2e -Subversive

У нас есть довольно простой многомодульный проект maven в нашем репо.У него есть родительский проект / pom и 3 дочерних проекта / poms.

Шаги, которые я предпринимаю для импорта: 1) Я импортирую проект, используя «import-> import -> -> Maven-> Check Maven Projects from SCM».

2) В следующем диалоговом окне я выбираю svn в качестве типа URL-адреса SCM и введите оставшуюся часть URL-адреса репо.Я оставляю флажки «Проверка редакции головы» и «Извлечь все проекты», а в разделе «Дополнительно» я оставляю флажок «Разрешение конфликтов рабочей области» тоже.Я не ввожу ничего под "Профили" или "Шаблон имени".

3) В следующем диалоговом окне я оставляю флажок «Использовать расположение рабочей области по умолчанию» и оставляю флажок «Добавить проекты в рабочий набор» неотключенным и нажимаю «Готово».

4) Iподождите минуту или около того, чтобы появилось следующее диалоговое окно.Он просит меня выбрать проекты maven и имеет файловую структуру, как это должно быть: родительский проект / pom и 3 дочерних проекта / poms с флажком рядом со всеми 4 элементами.Я пытался выбрать либо только родитель, только дети или все 4 без успеха.

5) Когда я выбираю только родитель и снимаю флажок с дочерних элементов выше, проект кажется импортированным.Родитель отображается в проводнике проекта, а три дочерних элемента отображаются в виде подпапок родительского элемента, каждый из которых имеет помпу.

6) Если щелкнуть правой кнопкой мыши родительский элемент, я получу элемент Maven в контекстном меню.и действительно, я могу "запустить как-> Maven, построить, установить и т. д." ТОЛЬКО НА РОДИТЕЛЕ.Дочерние проекты не имеют ни таких контекстных меню Maven, ни возможности «запустить как-> Maven x».

Если я попытаюсь импортировать все 4 проекта на шаге 4 выше, он импортирует с той же структурой, как указано в5 выше, но с детьми, появляющимися дополнительно как отдельные "независимые" проекты Maven (с ошибками).

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

Большое спасибо за любую помощь в этом вопросе!Я с удовольствием отвечу на любые дополнительные вопросы, чтобы помочь решить проблему.

Ответы [ 4 ]

0 голосов
/ 28 октября 2011

Вы устанавливали расширение m2e WTP ? По крайней мере, теоретически это должно быть лучшим вариантом, чем возиться с настройками проекта вне контроля Maven / m2e.

0 голосов
/ 27 октября 2011

Уверен, каждый модуль должен иметь свои собственные настройки .project, которые вам нужно будет зафиксировать.

0 голосов
/ 28 октября 2011

Я, вероятно, плохо объяснил проблему в своем первоначальном вопросе. Основная проблема заключалась в том, что я не смог развернуть компонент webapp мультимодульного проекта maven в Tomcat. Я сделал пару основных ошибок:

  • Я импортировал родительский проект без выбора дочерних элементов, предполагая, что Maven получит их все, и этого будет достаточно, но этого не произошло: мне пришлось выбирать родительский и все дочерние элементы при импорте в svn как проект Maven.

  • Затем мне не удалось преобразовать часть проекта в веб-приложении в граненый тип, а также не удалось выбрать «динамическое веб-приложение». Мне нужно (по словам коллеги) выбрать версию 2.5, чтобы избежать несовместимости со старыми контейнерами сервлетов. (не уверен, насколько это относится к Tomcat 6, которым я и пользуюсь).

Как только это было сделано, у меня в родительском проекте появилось родительский проект и 3 подпапки, а также 3 дочерних проекта (но в файловой системе все они существуют в родительском проекте, как и должно быть). Затем я мог бы щелкнуть правой кнопкой мыши на модуле webapp (проект проводника проекта eclipse, а не подпапку) и запустить как проект Maven (очистить, собрать и т. Д.).

Я мог бы затем щелкнуть правой кнопкой мыши и "запустить на сервере". При публикации произошла ошибка из-за несинхронизации различных файлов. Я просто обновил дочерние проекты в Eclipse, а затем они успешно опубликовали.

Eclipse имеет так много версий, с таким количеством несовместимых плагинов и т. Д., Что он очень быстро запутывается - многие учебники очень специфичны для конкретных версий и т. Д.

Спасибо за помощь, ребята.

0 голосов
/ 27 октября 2011

Мои проекты иногда также теряют эту способность (хотя они имеют ее сразу после импорта).Обычно это помогает обновить конфигурацию Maven, обновить / очистить проекты или перезапустить Eclipse.Обратите внимание, что по-прежнему возможно выполнить его долгий путь, поэтому «Выполнить -> Выполнить конфигурации -> Maven».

Я использую Helios SR 2, m2e 1.0.0.20110607-2117.

...