Я пытаюсь автоматизировать выпуск взаимозависимых проектов. Вот сценарий. У меня есть два проекта: A и B. Проект B зависит от проекта A. Вот шаги, которые должны произойти в автоматизированной процедуре:
- Выпуск проекта A с использованием maven-release-plugin. (Я знаю как это сделать). Вот последовательность целей, которые я определил:
выпуск: чистый выпуск: prepare -DcommitByProject = true -DautoVersionSubmodules = true выпуск: выполнить
Разверните последнюю версию SNAPSHOT проекта A в хранилище. (Использование просто deploy работает. Однако есть небольшой улов, который я описал ниже.)
Обновите зависимую версию SNAPSHOT проекта A в проекте B до последней версии выпуска перед выполнением полной версии. Чтобы добиться этого, я установил prepareGoals следующим образом ( чистая проверка версий: используйте версии последних версий: commit ) в файле POM проекта B.
Кажется, все работает нормально.
Теперь я хочу, чтобы после завершения выпуска зависимость Project A в Project B от последней версии SNAPSHOT, которая была установлена во время выпуска выпуском : prepare plugin.
Я решил создать maven deploy для проекта SNAPSHOT сразу после выпуска : execute был выполнен. (Новая последовательность целей для проекта A: выпуск: чистый выпуск: prepare -DcommitByProject = true -DautoVersionSubmodules = true выпуск: выполнить чистую установку deploy )
Затем я могу выполнить версии: use-next-snapshots в конце цикла выпуска проекта B.
(Новая последовательность целей для проекта B: выпуск: чистый выпуск: prepare -DcommitByProject = true -DautoVersionSubmodules = true выпуск: выполнить версии: use-next-snapshots ). Здесь я ограничиваю свой плагин версий для обработки только зависимостей проекта А.
Проблема в том, что когда я выполняю цели для Project A. Maven развертывает SNAPSHOT со старой версией, а не с увеличенной версией. Так что, если версия до выпуска для проекта A была 1.1-SNAPSHOT . Версия после релиза теперь 1.2-SNAPSHOT . Версия выпуска будет 1.1 . Однако развернутая версия снимка проекта A 1.1-SNAPSHOT , а не 1.2-SNAPSHOT .
Я предполагаю, что maven не обновляет pom в памяти после выполнения целей maven-release-plugin.