Управление версиями для проекта maven с небольшими, очень частыми выпусками - PullRequest
6 голосов
/ 06 октября 2009

Я конвертирую проект ant в maven. Этот проект отличается от тех, которые я обычно конвертировал, потому что он имеет очень частые выпуски, обычно 8-10 раз в день.

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

Я бы хотел иметь схему управления версиями, где:

  • легко развернуть, не заставляя разработчиков думать о том, какой номер версии назначать проекту, поскольку номер бессмысленен;
  • Легко включить последнюю версию этого проекта в качестве зависимости без постоянного увеличения версий зависимости;

Скорее всего, версия зависимости не будет -SNAPSHOT, поскольку она будет конфликтовать с maven-release-plugin, который мы используем для других проектов, но я открыт для предложений.

1 Ответ

5 голосов
/ 06 октября 2009

На самом деле, вы можете использовать x-SNAPSHOT версию и по-прежнему использовать maven-release-plugin . Просто используйте mvn release:prepare перед mvn release:perform, чтобы подготовить свой выпуск, и измените версию в poms с x-SNAPSHOT на новую версию (вам будет предложено указать версии для использования). Вы можете проверить это введение в плагин maven-release-plugin для быстрого обзора release:prepare и release:perform.

Затем, чтобы включить последнюю версию без постоянного обновления версии зависимостей, вы можете использовать диапазоны зависимостей, как в следующем фрагменте, где мы указываем диапазон Junit 3.8 - Junit 4.0:

<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>[3.8,4.0)</version>
  <scope>test</scope>
</dependency>

Версия до или после запятой не требуется, и означает +/- бесконечность. Например, [4.0,) означает любую версию, большую или равную 4,0.

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

Но у вас могут быть веские причины для их использования.

...