Eclipse + Subversion (subclipse) + Maven (m2eclipse) многомодульный проект - PullRequest
8 голосов
/ 29 октября 2010

У меня есть некоторые связанные проекты, которые являются беспорядочными, и я хотел бы превратить их в мультимодульный проект, совместно используемый на Subversion (первый многомодульный проект, у нас всегда были отдельные).Есть несколько ключевых частей: 1) веб-сервис, 2) различные клиенты Swing, 3) модель (с сохранением из спящего режима), 4) основные задачи JSE.

Я возился несколько дней, пытаясьчтобы правильно настроить его, используя Eclipse (Helios), Maven (2.2.1), m2eclipse (0.10.0) и Subversion (1.6) для нашей команды.Я продолжаю ставить себя в тупик или иметь случайные ошибки, которые заставляют меня отказаться.Я надеюсь, что кто-то может помочь мне с некоторыми лучшими практиками.

Вот некоторые из вопросов:

m2eclipse требует "плоской" структуры проекта затмения.Означает ли это, что я должен создать хранилище Subversion для каждого модуля?Если я сделаю один репозиторий и попытаюсь зарегистрироваться из родительского проекта, мне будет трудно установить свойство svn: ignore для вложенных целевых (и других) каталогов проекта.

Если я выполняю модуль похранилище, я, кажется, могу проверить их в порядке.Вопрос в том, что является лучшим способом проверить через subclipse?Есть ли лучший заказ?Родительский или дочерний проект (ы) первым?Нужно ли мне извлекать родительский проект и изменять путь извлечения дочернего проекта, который будет вложен в каталог файлов, что позволит мне затем "очистить установку" из родительского проекта?

Или я должен отказатьсяsubclipse и m2eclipse, извлеките и запустите мои задачи maven из командной строки.

Или я должен просто использовать интеграцию SCM с Maven.Или, может быть, просто даже не пытайтесь настроить многомодульный проект.

Что делают другие?У кого-нибудь есть документация (я пропустил) или ссылки (Google не рекомендовал)?

Заранее спасибо за ваш отзыв.

Ответы [ 2 ]

8 голосов
/ 30 октября 2010

m2eclipse требует "плоской" структуры проекта затмения.

Хм, m2eclipse поддерживает вложенные проекты AFAIK (или, по крайней мере, импортирует вложенную структуру проекта). Я не использую мастера Eclipse для создания своих проектов, хотя, возможно, я чего-то не знаю.

Означает ли это, что я должен создать хранилище Subversion для каждого модуля?

Нет, нет, абсолютно нет, и я бы этого не делал (это будет сложно поддерживать). Однако, в зависимости от циклов выпуска ваших проектов, вам, возможно, придется подумать о компоновке вашего репозитория (один против нескольких стволов / тегов / ветвей), особенно если вы планируете использовать плагин релиза maven. Если некоторые части имеют независимые циклы выпуска, то я бы выбрал несколько стволов / тегов / ветвей. Если вы всегда выпускаете их все вместе (как единый продукт), то это нужно сделать одним стволом / тегами / ветвями. Я написал несколько ответов на тему, которая может представлять интерес:

Если я сделаю один репозиторий и попытаюсь зарегистрироваться из родительского проекта, мне будет трудно установить свойство svn: ignore для вложенных целевых (и других) каталогов проекта.

В чем проблема?

Если я делаю модуль для репозитория, я, кажется, могу проверить их в порядке. Вопрос в том, что является лучшим способом проверить через subclipse? Есть ли лучший заказ? Родительский или дочерний проект (ы) первым? Нужно ли извлекать родительский проект и изменять путь извлечения дочернего проекта, который будет вложен в каталог файлов, что позволит мне затем «очистить установку» из родительского проекта?

Какой бы выбор вы ни сделали (несколько репозиториев или нет, несколько стволов / тегов / веток или нет), должна быть возможность извлекать всю структуру проекта за один раз (используя svn:externals, если требуется). По крайней мере, вы должны попытаться сделать это возможным (см. Ссылки, размещенные выше).

Но я повторяю, я не рекомендую использовать несколько репозиториев (если вы не хотите иметь независимые номера ревизий), и ничто не заставляет вас делать это.

Или я должен отказаться от subclipse и m2eclipse и checkout и запустить свои maven цели из командной строки.

Я успешно использую Eclipse, m2eclipse, subclipse, все они хорошо интегрированы (по крайней мере, для сборки и проверки). Но я делаю первоначальный импорт и начальную проверку в командной строке, а затем импортирую

Или я должен просто использовать интеграцию SCM с Maven.

Я им не пользуюсь, мне это не нужно.

Или, может быть, просто даже не пытайтесь настроить многомодульный проект.

Нет никаких оснований запрещать использование многомодульной установки проекта, мультимодульные сборки являются одной из ключевых частей Maven.

Что делают другие? У кого-нибудь есть документация (я пропустил) или ссылки (Google не рекомендовал)?

Посмотрите ссылки, которые я разместил:)

1 голос
/ 29 октября 2010

Сначала немного сложно.То, как я обычно это вижу, выглядит следующим образом:

В Subversion:

- Parent Project
-- Module A
--- pom.xml (module A)
-- Module B
--- pom.xml (module B)
-- Module c
--- pom.xml (module C)
-- pom.xml (parent project)

Некоторые замечания (вы уже знаете):

  • Вы должны сделать так, чтобы дочерние проекты были перечислены как модули в вашем родительском проекте
  • Вы должны перечислить родительский проект в ваших дочерних проектах (как родительская группа, артефакт, версия)
  • Когда вы проверяетеИз проекта svn вам нужно сделать «check as as maven project» вместо стандартного «check out» (это может быть уловка)

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...