Неинтерактивно обновлять версию проекта Maven до версии выпуска
Я хочу обновить версию моего проекта Maven до версии выпуска, соответствующей текущей версии снимка. Например 1.2-SNAPSHOT
должен стать 1.2
, Другими словами, я просто хочу удалить -SNAPSHOT
суффикс из версии. Я хочу сделать это неинтерактивным способом, чтобы мой инструмент CI мог выполнить это действие.
Я знаю, что это может быть сделано либо с maven-release-plugin
или maven-versions-plugin
и, возможно, другие плагины. У меня есть предпочтение maven-versions-plugin
потому что он хорошо обрабатывает агрегаторные проекты.
Оба плагина запрашивают новую версию, но позволяют указать версию в командной строке. Как предоставить новую версию относительно текущей версии снимка? Как сказал, я просто хочу удалить -SNAPSHOT
часть.
Итак, чтобы быть ясно,
- Я только хочу обновить версию проекта, а не все остальные вещи, которые предлагает плагин релиза.
- Я не хочу указывать номер версии, а просто обновляю версию до "чего бы то ни было раньше"
-SNAPSHOT
".
3 ответа
С помощью инструмента CI вы сможете редактировать тег непосредственно в POM.
Это фрагмент моего небольшого проекта.
<modelVersion>4.0.0</modelVersion>
<groupId>com.organization</groupId>
<artifactId>pdf_tiff_conversion</artifactId>
<version>1.0-SNAPSHOT</version> // Edit this tag
<packaging>jar</packaging>
Maven-release-plugin делает именно то, что вы просите - и может быть запущен в неинтерактивном режиме для выполнения следующих шагов:
Постройте проект
Пометьте код
Внесите изменения в свой SCM
изменить версию на выпускную
построить снова
вставьте версионную банку / войну / ухо /zip в хранилище по вашему выбору
пометить и нажать
установить номер версии для следующей версии снимка
и т.п.
Все сделано автоматически.
Используйте version-maven-plugin:
mvn org.codehaus.mojo:versions-maven-plugin:2.1:set -DnewVersion=1.2 -DgenerateBackupPoms=false
Это, к сожалению, заставляет вас указывать номер версии (1.2
), это не лишит -SNAPSHOT
, но это гораздо более простое решение, чем плагин релиза.