Плагин Maven Release, плагины версий и снимки - PullRequest
0 голосов
/ 21 июня 2011

Я пытаюсь автоматизировать выпуск взаимозависимых проектов. Вот сценарий. У меня есть два проекта: A и B. Проект B зависит от проекта A. Вот шаги, которые должны произойти в автоматизированной процедуре:

  1. Выпуск проекта A с использованием maven-release-plugin. (Я знаю как это сделать). Вот последовательность целей, которые я определил: выпуск: чистый выпуск: prepare -DcommitByProject = true -DautoVersionSubmodules = true выпуск: выполнить
  2. Разверните последнюю версию SNAPSHOT проекта A в хранилище. (Использование просто deploy работает. Однако есть небольшой улов, который я описал ниже.)

  3. Обновите зависимую версию 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.

1 Ответ

1 голос
/ 21 июня 2011

рассматривали ли вы, что оба проекта принадлежат родительскому проекту. затем вы освобождаете родительский проект, который в свою очередь автоматически освобождает каждый модуль (подпроект)

...