Импорт проекта Maven в Eclipse из Git

100

Как я могу получить эффект от выбора импорта из Maven и Git и правильно ли Eclipse сгенерировать мой проект?

Чтобы получить свой проект в Eclipse, я могу выбрать File-> import-> maven, а затем я получаю все проекты Maven, импортированные и могу нормально строить, или я могу выбрать File-> import-> git и создать новый проект, который игнорирует pom .xml и не создает проект должным образом.

Кажется, я могу сделать одно или другое, но не могу объединить оба, поэтому я получаю правильно сгенерированный проект.

Артур Ульфельдт
источник

Ответы:

103

Eclipse Indigo + M2Eclipse 1.0 делает это очень просто.

Если у вас еще нет коннектора Git для M2Eclipse, установите его. M2Eclipse поможет вам, предложив вам меню «Импорт».

  1. Выберите контекстное меню «Импорт ...» в представлении проводника пакетов.
  2. Выберите вариант «Проверить проекты Maven из SCM» в категории Maven.
  3. В открывшемся окне выберите ссылку «Найти другие разъемы SCM в m2e Marketplace.
  4. Найти коннектор для Git ... установить ... перезапустить

Обратите внимание, что в поле поиска вам может потребоваться ввести «EGit» вместо «Git», чтобы найти нужный соединитель.

После этого просто перейдите в репозиторий EGit, вызовите контекстное меню для рабочего каталога и выберите «Импортировать проекты Maven ...».

Готово!

Шри Шанкаран
источник
4
Я сделал это в Indigo, но в Juno в настоящее время есть ошибка, которая не позволяет установить m2e-git SCM. bugs.eclipse.org/bugs/…
Codey McCodeface,
1
@ medPhys-pl Похоже, проблема связана с m2e и EGit, а не с самим Git.
Шри Шанкаран
1
"легкий" относительный. Весь рынок eclipse - это беспорядок , репозитории maven - беспорядок, потому что они не отслеживают совместимость, поэтому вы получаете десятки копий почти идентичного пакета, и теперь добавление "m2e marketplace" не улучшает ситуацию .
ВЫЙТИ - Anony-Mousse
1
@ Anony-Mousse: Я согласен с тем, что "легко" относительно. Однако я использовал это, чтобы описать свой опыт решения исходного вопроса (импорт в Eclipse из репозитория Git). Ваши претензии могут быть обоснованными, но не решаются проблемы.
Шри Шанкаран
2
В Шаге 4 есть исправление, оно должно быть "..connector for EGit ..". А точнее поищите m2e-egit на рынке.
наноспек
41

Я бы выполнил клонирование git через командную строку (вне Eclipse), а затем использовал бы File -> Import ... -> Existing Maven Projects .

Ваши проекты будут поняты как использующие Git и Maven. Это самый быстрый и надежный способ импортировать IMO.

Джоэлитлджон
источник
3
Да, это определенно работает, но новый m2 наконец получил хорошую интеграцию с git и svn. Как отмечали другие, EGit 1.0.0, m2e 1.0 и m2e-egit 0.13 предоставят вам git -> материализовать проект mvn для затмения за один шаг.
thetoolman
Хм, мне пришлось щелкнуть проект правой кнопкой мыши и использовать «Команда> Поделиться проектом» и т. Д., Чтобы EGit распознал, что это проект Git.
Брайан МакКатчон, 09
19

Шаг 1. Настройка Eclipse

Прежде всего вам необходимо установить несколько подключаемых модулей Eclipse. Поэтому используйте функцию установки программного обеспечения eclipse IDE в раскрывающемся меню справки → Установить новое программное обеспечение и добавьте ссылку на сайт доступного программного обеспечения, а затем установите его.

  1. Плагин GIT (EGIT) - http://download.eclipse.org/egit/updates
  2. Плагин Eclipse Maven (M2Eclipse) - http://download.eclipse.org/technology/m2e/releases
  3. Обработчик Maven SCM для EGit (m2e-egit)

    Установите из M2E Marketplace (Настройки → Maven → Discovery → Открыть каталог и найдите «m2e-egit»)


Шаг 2. Клонируйте репозиторий

Клонируйте (загрузите) свои проекты Maven из Git

Ознакомьтесь с проектами Maven, не относящимися к затмению, из Git (Файл → Импорт .. → Maven → Ознакомьтесь с проектами Maven из SCM)

Файл → Импорт .. → Maven → Проверить проекты Maven из SCM

Теперь добавьте ссылку на репозиторий git в поле URI SCM, затем нажмите «Далее» и «Готово».

Таринду Раджаратна
источник
18

На момент написания этой (обновленной) записи рабочая установка была следующей:

  1. Eclipse 3.8 (сайт обновления Eclipse Indigo)
  2. EGit 1.3.0 (сайт обновления Eclipse Indigo)
  3. m2e 1.0.200 (сайт обновления Eclipse Indigo)
  4. m2e-egit 0.14.0 (m2e маркет при добавлении коннектора)

Проверено на Ubuntu Raring.

Вы можете, конечно, «Импорт» -> «Maven» -> «Проверить проекты Maven из SCM», и это самый быстрый способ. Однако такой прямой импорт в настоящее время не дает вам контроля над именем папки клонированного репозитория. Возможно, вам будет лучше работать в представлении «Репозиторий Git» и выполнить либо «Клонирование из репозитория Git и добавить клон в это представление», а затем «Импорт проектов Maven» из такого клона; Самый долгий способ - выполнить клонирование вручную, а затем «Добавить существующий локальный репозиторий Git в это представление», а затем снова «Импортировать проекты Maven». В любом случае у вас есть полный контроль над клонированной папкой.

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

Лука Геретти
источник
13

Я тестировал это для своего проекта.

  1. Эклисп Индиго
  2. «Справка> Установить новое программное обеспечение» Включите / установите официальные подключаемые модули Git в «Подключаемый модуль Eclipse Git ..» и установите их.
  3. Включите коннектор Maven / EGit с помощью этих инструкций. Как добиться, чтобы интеграция git работала с m2eclipse?
  4. Переключитесь на перспективу репозитория Git. Щелкните правой кнопкой мыши и вставьте URL-адрес проекта git. Все настройки по умолчанию должны работать. Возможно, вы захотите изменить предполагаемую папку для установки.
  5. Разверните клонированный репозиторий, щелкните правой кнопкой мыши «Рабочее дерево» и выберите «Импортировать проекты Maven ...».
  6. Переключитесь на перспективу Java. Щелкните проект правой кнопкой мыши и выберите «Команда> Поделиться проектом». Выберите «Git» и обязательно установите флажок «Использовать или создать репозиторий в родительской папке проекта».
simbo1905
источник
1
Да, я сделал то же самое. Не поймите, почему m2e-egit не выполняет шаг 6. автоматически.
xmedeko
6

Вот мой обходной путь, это решение этих проблем:

  • Невозможно установить m2e-egit (в Juno выдает ошибку)
  • Преобразование общего проекта (подключенного к вашему репозиторию Git) в проект Maven не работает для вас (шаг Импорт проектов Maven кажется важным)
  • При импорте проектов Maven из вашего репозитория в файловую систему не отображается проект, подключенный к Git.

  1. Настройте репозиторий Git в перспективе Git Repository Exploring .
    • Переключитесь на перспективу Java, Импорт> Существующие проекты Maven.
    • Перейдите к проверке Git в файловой системе, выберите каталог, содержащий файл pom.xml. Завершите импорт; вы заметите, что эти проекты не связаны с Git. :-(
    • Удалите эти проекты, но НЕ УДАЛЯЙТЕ ИЗ FILESYSTEM . Мы не хотим, чтобы наш клон был удален; эта задача также оставляет файл .project, чтобы мы могли импортировать его на следующем шаге.
  2. Вернитесь к перспективе Git Repository Exploring .
    • Щелкните правой кнопкой мыши свой репозиторий, Импортировать проекты ...
    • Выберите Импортировать существующие проекты.
    • В проводнике ниже найдите и выберите каталог, содержащий файл pom.xml (и файл .project), затем нажмите «Далее».
    • Продолжайте через мастера.
Арло
источник
В Eclipse Luna это работало после шага 1.2 (проект был подключен к Git после первого импорта).
PJ_Finnegan
4

Импортировать без установки дополнительных коннекторов для Mylyn:

  1. Открыть Git Repositoriesпредставление (Окно-> Показать представление-> Репозитории Git)
  2. Нажмите Clone a Git Repositoryкнопку и продолжайте все шаги
  3. Во вновь созданном репозитории разверните Working Directory, щелкните правой кнопкой мыши папку с вашим проектом и выберите Import Projects. Затем либо выберите Import existing projects, либо выберите Import as general project. При необходимости после импорта щелкните свой проект правой кнопкой мыши и выберите «Настроить» -> «Преобразовать в проект Maven» (и «Maven ->« Обновить проект »).
колобок
источник
3

Следует отметить, что передача сгенерированных метаданных под контроль версий (пусть это будет git или любой другой scm) - не очень хорошая идея, если над базой кода работает более одного разработчика. У двух разработчиков могут быть совершенно разные настройки проекта или пути к классам. В качестве предупреждения на случай, если вы когда-нибудь собираетесь поделиться кодом ...

Питер Хэгг
источник
2

У меня есть проект maven с тремя подмодулями, который управляется в git. Я установил их в eclipse следующим образом:

  1. Я зарегистрировал репозиторий git в eclipse с помощью EGit
  2. Я импортировал проекты как существующие проекты Maven
  3. Для каждого проекта я выбрал Команда | Поделиться проектом .
Том Нортон
источник
1

Я бы предпочел импортировать проекты в Eclipse как mavenпроекты, а не как проекты git. Это все равно позволит распознать содержимое проекта как содержимое git. Вы можете продолжать выполнять операции git из Eclipse. Как вы отметили, обратное неверно.

Природа проекта в Eclipse основана не на SCM, в котором находится проект, а на типе проекта - будь то война или jar и т. Д. - который определяется автоматически, когда проект импортируется как проект maven.

Я бы не решился проверять метаданные, специфичные для SCM IDE. Это предполагает множество вещей - все разработчики используют одну и ту же IDE или версию IDE, возможно, одну и ту же версию JDK / JRE, что они продолжают использовать одну и ту же версию на протяжении всего жизненного цикла проекта и так далее.

Рагурам
источник
1

Разве вы не можете импортировать его как проект мерзавца , а затем (если у вас есть m2eclipse установлен) кликните правой кнопкой мыши по проекту в проводнике пакетов > Maven> Enable Dependency Management?

Димитрисли
источник
1
Если он не отображается и у вас установлен m2e, откройте файл .project и добавьте природу maven2 самостоятельно: <name> org.eclipse.m2e.core.maven2Builder </name>
dimitrisli
1

После проверки моей ветки в Egit я переключился на представление Java, затем использовал File -> Import, Git -> Projects from Git, затем выбрал каталог maven верхнего уровня. Это было с Eclipse Kepler.

Рэнди
источник
-3

Вместо постоянной генерации метаданных проекта с помощью команды import-> maven вы можете один раз сгенерировать метаданные проекта и поместить их в репозиторий git вместе с остальным исходным кодом. После этого использование команды import-> git импортирует правильный проект с поддержкой maven, если у вас установлены инструменты maven.

Обязательно поместите в систему управления версиями все файлы в каталоге проекта, которые начинаются с '.' такие как .classpath и .project вместе со всем содержимым каталога .settings.

Константин Комиссарчик
источник