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

#eclipse #svn #maven #subversive #m2e

#eclipse #svn #maven #подрывной #m2e

Вопрос:

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

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

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

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

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

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

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

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

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

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

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

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

Ответ №1:

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

Я запускаю Helios SR 2, m2e 1.0.0.20110607-2117.

Комментарии:

1. Однако проблема проявилась немедленно. Я нашел подсказку от коллеги. Ошибка, которую я допустил, заключалась в том, что я не преобразовал дочерний проект в фасетный проект (динамическое веб-приложение) и выбрал версию 2.5. После того, как я это сделал, я смог запустить на сервере (что мне действительно нужно было сделать — я плохо объяснил это). Спасибо вам обоим, ребята, за ответ — при первом использовании SO итак, как мне правильно «завершить» этот вопрос?

2. @PhilipMurphy Поскольку ни один из ответов не оказался полезным, самым желанным было бы ответить на вопрос самостоятельно и принять ответ.

Ответ №2:

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

Ответ №3:

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

Комментарии:

1. Привет, Никола, да, я уже установил расширение m2e для WTP в начале. Спасибо.

2. На самом деле я упомянул об этом в надежде, что @FredBricon присоединится 😉

Ответ №4:

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

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

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

Затем я мог бы щелкнуть правой кнопкой мыши и «запустить на сервере». При публикации у меня возникла ошибка, связанная с тем, что различные файлы не синхронизированы. Я только что обновил дочерние проекты в eclipse, и затем они будут успешно опубликованы.

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

В любом случае, спасибо за помощь, ребята.