Здесь могут помочь некоторые плагины, как уже упоминалось в этом ответе и в комментариях к этому : плагину Maven Release , если вы хотите полностью автоматизировать выпуск и / или плагин Maven Versions .
с плагином Maven Release
Выпуск проекта с помощью Maven Release Plugin выполняется в два этапа: prepare
и perform
, и вот что написано в документации release:prepare
цель:
Подготовка релиза проходит через
следующие фазы выпуска:
- Убедитесь, что в источниках нет незафиксированных изменений
- Убедитесь, что нет зависимостей SNAPSHOT
- Измените версию в POM с x-SNAPSHOT на новую версию (вы
будет предложено указать версии для
использование)
- Преобразование информации SCM в POM для включения окончательной
назначение тега
- Запустите тесты проекта для измененных POM, чтобы подтвердить, что все
в рабочем состоянии
- Зафиксировать измененные POM
- Пометьте код в SCM именем версии (это будет предложено
для)
- Увеличить версию в POM на новое значение y-SNAPSHOT (эти значения
также будет предложено для)
- Зафиксировать измененные POM
Другими словами, плагин Maven Release точно выполняет то, что вы просите.
С плагином Maven Versions
Если вы не используете плагин Maven Release, может помочь плагин Maven Versions . В частности, поставлены следующие цели:
versions:update-parent
обновляет родительский раздел
проект, так что он ссылается на
новейшая доступная версия. Например,
если вы используете корпоративный корневой POM, это
цель может быть полезна, если вам нужно
убедитесь, что вы используете последнюю версию
версия корпоративного рута POM.
versions:update-child-modules
обновляет родительский раздел дочерних модулей проекта, чтобы
версия соответствует версии
текущий проект. Например, если вы
есть агрегатор пом, который также
родитель для проектов, которые это
совокупности и детей и родителей
версии не синхронизированы, это моджо
может помочь исправить версии ребенка
модули. (Обратите внимание, что вам может потребоваться вызвать
Maven с опцией -N для того, чтобы
запустить эту цель, если ваш проект
сломан так сильно, что не может построить
из-за несовпадения версий).
versions:set
можно использовать для установки версии проекта из
командная строка.
versions:commit
удаляет файлы pom.xml.versionsBackup. формы
половина встроенного "Бедного человека"
СКМ».
versions:revert
восстанавливает файлы pom.xml из
Файлы pom.xml.versionsBackup. формы
половина встроенного "Бедного человека"
СКМ».
Я упомянул несколько целей, но, пожалуй, самое интересное здесь versions:update-child-modules
. Это позволило бы изменить версию в верхней родительской поме, а затем автоматизировать обновление дочернего элемента. См. Исправление многомодульной сборки для примера.
Больше ничего не могу поделать, теперь тебе нужно поэкспериментировать. Удачи!
Ссылки