#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 так много версий, с таким количеством несовместимых плагинов и т.д., Что это очень быстро сбивает с толку — многие учебные пособия очень специфичны для конкретных версий и т.д.
В любом случае, спасибо за помощь, ребята.