Настройка выпуска Maven с тегами SVN для каждого модуля - PullRequest
6 голосов
/ 25 января 2011

Цель

Многомодульная версия maven с тегами для модуля

Ситуация

Предположим, что для Java-проекта на основе Maven существует следующая структура проекта:

xx-parent
xx-moduleA
xx-moduleB
xx-moduleC/submodule1
xx-moduleC/submodule2
xx-moduleC/submodule3

Структура проекта в Subversion выглядит следующим образом:

xx-parent/trunk
xx-moduleA/trunk
xx-moduleB/trunk
xx-moduleC/trunk/submodule1
xx-moduleC/trunk/submodule2
xx-moduleC/trunk/submodule3

Моя цель - создавать теги для каждого модуля при выполнении выпуска:

xx-parent/tags/xx-parent-1.0
xx-moduleA/tags/xx-moduleA-1.0
xx-moduleB/tags/xx-moduleB-1.0
xx-moduleC/tags/xx-moduleC-1.0

В прошлом каждый модуль был построени выпущен отдельно.По мере роста проекта (30 модулей) время создания релиза увеличивалось.Я хотел бы изменить проект на многомодульный, настроенный для выполнения сборки и выпуска реактора.Сборка, кажется, не является проблемой, но создание тегов для каждого модуля:

Плагин maven-release-plugin, кажется, настаивает на создании только одного тега для всего проекта / выпуска.Я ищу способ создания нескольких тегов, например тега для модуля.

То, что я пробовал до сих пор

  • Создание псевдонима xx-all Subversion, который проверяетвсе подмодули, поэтому я могу ссылаться на них с помощью <module>../xx-moduleB</module>
  • Включение commitByProject , которое выполняло фиксацию для модуля, но не для тега для модуля.См.
  • Каждый модуль имеет свои <scm> элементы в pom.xml, но они не используются при выпуске реактора.
  • mvn --batch-mode -DcommitPerProject=true -DautoVersionSubmodules=true -Drelease.version=1.0.6 release:prepare release:perform

Проблемы

  • maven-release-plugin не создает тег svn для модуля
  • maven-release-plugin перезаписывает тег <scm> недопустимыми URL-адресами, например, вложенный "trunk"-tags под тегом xx-parent

Вопрос

Как я могу настроить этот проект с процессом выпуска Maven, многомодульной разметкой и при этом получить отдельные тегиза модуль?

Ссылки

http://jira.codehaus.org/browse/MRELEASE-261 (закрыто) и MRELEASE-561 (открыто)

1 Ответ

1 голос
/ 14 декабря 2011

По словам Арно Эритье (член PMC Apache Maven),
Maven не может обрабатывать составные приложения, такие как module-A v0.1, module-B v0.3.
Maven рассматривает проект и все его подмодули как уникальный набор.

см .: http://blog.aheritier.net/maven-release-plugin-2-0/ (9 июня 2010 г.)

Может быть, ситуация изменилась с Maven 3?

...