Настройка выпуска Maven с тегами SVN на модуль
-
24-10-2019 - |
Вопрос
Цель
Многомодульный выпуск Maven с тегами на модуль
Ситуация
Предположим, что следующая структура проекта для проекта Java на основе Maven:
xx-parent
xx-moduleA
xx-moduleB
xx-moduleC/submodule1
xx-moduleC/submodule2
xx-moduleC/submodule3
Структура проекта в подрывной деятельности следующая:
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, похоже, настаивает на том, чтобы сделать только один тег для всего проекта/выпуска. Я ищу способ создать несколько тегов, например, теги на модуль.
Что я пробовал до сих пор
- Создание псевдонима подрывного подрыва, который проверяет все подмодулы, поэтому я могу ссылаться на них с
<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-адресами, например, вложенные «туловище» -tags под тегом XX-родителя
Вопрос
Как я могу настроить этот проект с помощью процесса выпуска Maven, мультимодульной компоновкой и при этом получить отдельные теги на модуль?
использованная литература
http://jira.codehaus.org/browse/mrelease-261 (Закрыто) и MRELEASE-561 (OPEN)
Решение
По словам Арно Эритье (член Apache Maven PMC),
Maven не может обрабатывать композитные приложения, такие как Module-A V0.1, Module-B v0.3.
Мавен считает проект и все его подмодулы как уникальный набор.
видеть: http://blog.aheritier.net/maven-release-plugin-2-0/ (9 июня 2010 г.)
Может быть, ситуация изменилась с тех пор, как с Maven 3?