Цель
Многомодульная версия 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 (открыто)