Использование плагинов релизов Hudson и Maven для выпуска нескольких проектов - PullRequest
1 голос
/ 24 мая 2011

У меня есть три проекта Maven. Допустим, A, B и C. Каждый из этих проектов является многомодульным проектом с плоской структурой каталогов.

Проект C зависит от проекта B. В то время как проект B зависит от проекта A.

В настоящее время я могу успешно осуществлять непрерывную интеграцию с использованием Hudson всех трех проектов.

Что я хочу сделать, так это использовать плагин maven-release-plugin, чтобы выпустить релиз для всех трех проектов за один раз. Насколько я понимаю, maven-release-plugin требует, чтобы зависимости были полными версиями, а не версией SNAPSHOT.

Мне нужно сохранить номер версии SNAPSHOT, чтобы разрешение рабочей области Eclipse могло поддерживать взаимозависимость проекта на этапе разработки.

Поскольку эти проекты имеют иерархическую зависимость, проекты должны выпускаться последовательно, при этом последовательно обновляя версию SNAPSHOT зависимости.

Есть идеи, как мне этого добиться?

Я не думаю, что maven-release-plugin может этого добиться. По крайней мере, из того, что я узнал. Я предполагаю, что мне придется запустить отдельное задание Hudson, которое будет обновлять номер версии зависимостей по мере выпуска проектов.

1 Ответ

2 голосов
/ 16 августа 2011

А как насчет создания последовательности сборки?

Рассмотрим следующую конфигурацию, вы получили следующие задания.

  • Project-A-Release-Job
  • Проект-B-релиз-Job
  • Проект-C-релиз-Job

Более того
Если Project-A-Release-Job создается, он запускает Project-B-Release-Job,
Если Project-B-Release-Job создается, он запускает Project-C-Release-Job

В этом случае выпуск любого из этих проектов приведет к выходу следующего.

Рассмотрим использование maven-version-plugin в комбинации с плагином scm в следующем порядке:
1. Убедитесь, что новые версии выпуска / снимка находятся в хранилище
2. Обновите версии зависимостей в POM
3. Зафиксируйте обновленные Poms в SCM.

...