View on GitHub

blog

Maven и управление релизами

Про релизы и SNAPSHOT-ы

Maven позволяет управлять циклом разработки и сборки проекта. С помощью maven эти процессы стандартизируются для всех проектов.

SPANSHOT - это специальная версия проекта или модуля. Означает, что на данный момент в модуле находится самый новый код и ведутся постоянные изменения, например делается багфиксинг или доработка нового функционала. Если в проекте используется артефакт с обычной версией (например 2.0), то maven выполнит его сборку (либо загрузку с nexus) один раз и сохранит в локальном репозитории, потом будет загружать собранный (загруженный) в первый раз артефакт. Если модуль является SPAPSHOT-ом (версия 2.0-SNAPSHOT), то maven будет пересобирать его каждый раз заново вместо того, чтобы подтягивать из репозитория, либо каждый раз вытягивать из nexus вместо вытягивания из локального репозитория. Указывать версию как SNAPSHOT нужно, если на проекте ведутся работы и нам всегда нужна самая последняя версия.

Релиз - это какой-то объём функциональности, срез проекта в определённый момент времени и фиксирование этих изменений. Зачастую релизы поставляются заказчику и отдаются на тестирование. С помощью maven можно создавать релизы и управлять версиями автоматически.

см Как работают номера версий в Maven

Конфигурирование pom-файла

Все конфигурации выполняются в pom-файле родительского проекта.

Добавить путь к SCM (source control management, например SVN или GIT)

 <scm>
   <developerConnection>scm:svn:https://svn.myserver.com/path/to/repository</developerConnection>
   <url>https://svn.myserver.com/path/to/repository</url>
 </scm>

Добавить пути к репозиторию, куда будут паблишиться релизы

<distributionManagement>
   <repository>
     <id>nexus</id>
     <name>jazzteam release repository</name>
     <url>http://svn.myserver.com/content/repositories/releases</url>
   </repository>
   <snapshotRepository>
     <id>nexus</id>
     <name>jazzteam snapshot repository</name>
     <url>http://svn.myserver.com/content/repositories/snapshots</url>
   </snapshotRepository>
 </distributionManagement>

Указать версию maven-release-plugin.

<build>
   <plugins>
     <plugin>
       <groupId>org.apache.maven.plugins</groupId>
       <artifactId>maven-release-plugin</artifactId>
       <version>2.3.1</version>
     </plugin>
   </plugins>
 </build>

Maven и управление релизами

Создание релиза состоит из двух стадий:


Ссылки