2011-01-25 6 views
6

Goal

Мультиконтроллер Maven релиз с бирками на модульустановка релиз Maven с СВН тегов на модуль

Ситуация

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

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-плагин, похоже, настаивает на создании только одного тега для всего проекта/выпуска. Я ищу способ создания нескольких тегов, например. тег на модуль.

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

  • Создание хх-все 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-релиз-плагин не создает Svn тег для каждого модуля
  • Maven-релиз-плагин перезаписывает <scm> тег с недействительной URL, например вложенное «ствол» -tags под ой-родительского тегом

Вопрос

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

Список литературы

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

+0

+1 очень красиво написано и точно проблема, с которой я сталкиваюсь! Надеюсь, что в последние годы произошло улучшение – avalancha

ответ

1

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

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

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