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

Eclipse + Maven + Git + Проекты с несколькими модулями = Несчастье

У нас есть многомодульный проект с использованием Eclipse и Maven. Единственный способ заставить его работать в прошлом - использовать плоский макет для проектов, где родительский модуль был равноправным для других модулей. Это отлично работает с m2eclipse и Subversion.

Теперь мы хотели бы перейти на Git и GitHub. Я хотел бы разоблачить весь проект вместе со всеми модулями как единый проект на GitHub. Проблема в том, что EGit, плагин Eclipse/Git, хочет управлять проектами по одному, а не группами проектов, и поэтому, если у вас есть плоский макет, вы не можете этого сделать.

Правильный ответ - использовать стандартный иерархический макет Maven и управлять родительским и всеми модулями как единое целое. Но Eclipse это не нравится, и никакое количество возиться не заставит Eclipse принимать вложенные проекты. m2Eclipse не поддерживает иерархии: https://issues.sonatype.org/browse/MNGECLIPSE-2291

Итак, что вы делаете? Вывести Git из командной строки и отказаться от возможности видеть, какие файлы были изменены в Eclipse? Или отказаться от Eclipse?

4b9b3361

Ответ 1

Стандартная многомодовая структура Maven как единственная репозитория git отлично работает для меня в Eclipse Indigo с M2e и плагином git, который появляется в этой среде. Вы не можете попросить Eclipse сделать выборку для вас, но как только вы вытащили из командной строки, вы используете Team/Share, скажите "Git!" и все хорошо.

Я думаю, что я вижу, что источник: иерархия - проблема для проектов внутри рабочей области, а не "существующие проекты", которые вы импортируете.

Здесь типичный рабочий процесс:

  • используйте git svn clone, чтобы получить дерево. это хранилище, иерархическое многомодовое дерево mvn
  • в eclipse, используйте import/maven/существующий проект maven. Точка во всем дереве
  • выберите все
  • OK

он отлично работает. Вложение не мешает затмению один бит. Я не знаю, на какую проблему указывает bz.

Прежде чем использовать m2e, я использовал maven-eclipse-plugin. И он также работал в этих случаях, потому что он не генерирует проект .project/.classpath для <packaging>pom</packaging> агрегирования проектов, поэтому Eclipse никогда не вызывается для того, чтобы фактически что-либо вложить.

Я не одинок - ознакомьтесь с инструкциями по настройке разработчика как cxf.apache.org для примера с открытым исходным кодом, который вы можете попробовать сами.

Ответ 2

Возможно ли, что вы работаете со старыми версиями инструмента?

У меня есть мультимодульный проект Maven, с которым я работаю с использованием Eclipse 3.7 (Indigo), M2Eclipse (1.0) и EGit (1.0).

В файловой системе многомодульный проект имеет один родительский каталог.

В Eclipse у меня есть отдельные проекты для каждого модуля.

M2Eclipse отлично справляется с управлением зависимостями.

Существует единственный репозиторий git (каталог .git) на верхнем уровне, и EGit отлично работает.

Ответ 3

Вы можете поместить свои модули в Git с иерархическим расположением. И постройте эти модули Maven. Если эти модули являются проектами (независимо от проекта java, С++ или php), распознанного Eclipse, они могут быть импортированы в рабочее пространство как плоский макет в рабочее пространство.

-- the root of Git working directory
  -- moudule1
    -- project1(a java project)
      -- .project(a project file recognized by eclipse JDT)
      -- pom.xml
    -- project2(a java project)
      -- .project
      -- pom.xml
  -- module2
    -- projectA(a java project)
      -- .project(a project file recognized by eclipse JDT)
      -- pom.xml
    -- projectB(a c++ project)
      -- .project(a project file recognized by CDT)
      -- pom.xml 

Ответ 4

Для проектов Maven сразу несколько импорта могут быть получены с помощью мастера импорта Maven (доступного из Git). Если вы не знаете, какие проекты вы собираетесь импортировать, вы можете использовать новый Easymport, который будет импортировать проект "как можно лучше", выведя конфигурации из разных файлов. См. https://github.com/jbosstools/jbosstools-playground#easymport-easy-and-smart-openimport-of-a-project

Как только вы получите все эти проекты, вы можете использовать плагин Nestor, который отобразит проект в вложенном/иерархическом макете, правильное отображение вашего проекта Maven: https://github.com/jbosstools/jbosstools-playground#nestor-view-nested-projects