Работа с несколькими Maven проектами и несколькими ветками - PullRequest
2 голосов
/ 26 февраля 2010

All

В настоящее время у меня есть следующие maven проекты, все они хранятся в SVN:

  1. Common-Test v1.0 -> svn: repo / Common-Test / trunk
  2. Common-Core v3.1 (зависит от 1) -> svn: repo / Common-Core / trunk
  3. PM-Web v3.1 (зависит от 2) -> svn: repo / PM-Web / trunk

Теперь мне нужно создать ветку, поскольку v3.1 установлена ​​в производство, и мы хотим начать разработку для v4.0. Я не уверен, что он лучший способ справиться с этим:

  1. я должен просто создать ветку каждого проекта и увеличить версию? Я так не думаю, потому что, например, Common-Test, вероятно, не изменится, так зачем увеличивать версию?
    Однако, если по какой-либо причине требуется изменение Common-Test, существует опасность, что мы случайно сделаем изменение в v1.0 вместо создания новой версии и новой ветви.
  2. В svn: мне сгруппировать 3 проекта в 1 удаленную папку и создать ветку этой папки?

Вероятно, это обычная ситуация, поэтому мне было интересно, какие там процедуры ...

спасибо,
Стейн

1 Ответ

3 голосов
/ 26 февраля 2010

Должен ли я просто создать ветку каждого проекта и увеличить версию?

Что-то действительно близкое. Поскольку вы выпустили свой проект PM-Web (и его зависимости), вам нужно сделать «снимок» (на случай, если вам нужно что-то изменить), и я бы пометил каждый проект, чтобы сделать это (не t ответвления, если вам не нужно):

  1. Common-Test v1.0 -> svn: repo / Common-Test / tags / common-test-1.0
  2. Common-Core v3.1 (зависит от 1) -> svn: repo / Common-Core / tags / common-core-3.1
  3. PM-Web v3.1 (зависит от 2) -> svn: repo / PM-Web / tags / pm-web-3.1

Со всеми обновлениями в POM соответственно (версии, scm, версия в зависимостях и т. Д.).

Если позже вам потребуется что-то исправить в выпущенной версии, создайте ветку из помеченной версии, например,

  1. Common-Test v1.0.1 -> svn: repo / Common-Test / branch / common-test-1.x
  2. Common-Core v3.1 (зависит от 1)
  3. PM-Web v3.1.1 (зависит от 2) -> svn: repo / PM-Web / branch / pm-web-3.1.x

Сделайте исправление в ветках и выпустите новую версию (и установите заново).

И разработка следующей версии происходит в стволе (обратите внимание, что ничто не заставляет вас вносить какие-либо изменения в увеличенную версию Common-Test или выпускать ее, если вам это не нужно, но поскольку вы выпустили предыдущую версию , версия в багажнике должна быть изменена):

  1. Common-Test v1.1-SNAPSHOT -> svn: repo / Common-Test / trunk
  2. Common-Core v3.2-SNAPSHOT (зависит от 1) -> svn: repo / Common-Core / trunk
  3. PM-Web v3.2-SNAPSHOT (зависит от 2) -> svn: repo / PM-Web / trunk

Для вашей информации, плагин Maven Release может помочь автоматизировать эти шаги.

В svn: нужно ли сгруппировать 3 проекта в одну удаленную папку и создать ветку этой папки?

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

...