Плагин Maven Release, плагины версий и снимки

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

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

  3. Обновите версию зависимости SNAPSHOT проекта A в проекте B до последней версии, прежде чем выполнять полную версию. Для этого я установил цели подготовки следующим образом (версии чистой проверки: использование последних версий: фиксация) в файле POM проекта B.

Вроде все нормально работает.

Теперь я хочу, чтобы после завершения выпуска Project A в Project B была установлена ​​зависимость от последней версии SNAPSHOT, которая была установлена ​​во время выпуска с помощью подключаемого модуля release: prepare.

Решение, которое я придумал, заключалось в том, чтобы выполнить развертывание maven для проекта A SNAPSHOT сразу после выполнения release: perform. (Новая последовательность целей для проекта A: выпуск: чистый выпуск: подготовка -DcommitByProject = true -DautoVersionSubmodules = истинный выпуск: выполнить развертывание чистой установки)

Затем я могу выполнить версии: использовать следующие-моментальные снимки в конце цикла выпуска проекта B. (Новая последовательность целей для проекта B: выпуск: чистый выпуск: подготовка -DcommitByProject = true -DautoVersionSubmodules = true выпуск: выполнение версий: использование следующих-снимков). Здесь я ограничиваю свой плагин версий, чтобы он обрабатывал только зависимости проекта A.

Проблема в том, что когда я выполняю цели для проекта A. Maven развертывает SNAPSHOT со старой версией, а не с увеличенной версией. Итак, если версия до выпуска для проекта A была 1.1-SNAPSHOT. Версия после выпуска теперь - 1.2-SNAPSHOT. Версия выпуска - 1.1. Однако развернутой версией моментального снимка проекта A является 1.1-SNAPSHOT, а не 1.2-SNAPSHOT.

Я предполагаю, что maven не обновляет pom в памяти после выполнения целей maven-release-plugin.


person systemboot    schedule 20.06.2011    source источник


Ответы (1)


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

person Steven    schedule 20.06.2011