После очередного релиза проекта приходится менять его версию, проходясь при этом по всем pom-файлам. Процедура эта довольно утомительная и избавить от нее поможет versions-maven-plugin.
Достаточно выставить в головном pom-файле новую версию проекта и затем выполнить команду:
mvn versions:update-child-modules
Как вы наверное догадались, команда выполнит обновление всех версий проекта в pom-файлах дочерних модулей. Если же, по какой-то причине, вы остались недовольны проделанной работой плагина, то содержимое pom-файлов можно легко вернуть в исходное состояние командой:
mvn versions:revert
Чтобы удалить backup-ы pom-файлов выполните:
mvn versions:commit
Помимо выполнения обновления версии проекта, есть еще несколько полезных возможностей. Вывод списка новых версий зависимостей проекта, доступных из репозитария:
mvn versions:display-dependency-updates
Список новых версий плагинов используемых в проекте:
mvn versions:display-plugin-updates
5 комментариев:
Так а чего вы по человечески не релизите через maven-release-plugin?
Он всё и так меняет
А как быть в случае, когда мне просто хочется сменить версию?
Все подпроекты мультимодульного проекта перечисляются в dependencyManagement родительского проекта. В качестве номера версии ставится переменная ${pom.version}. В pom.xml подпроектов тег с номером версии вообще убирается и таким образом версия мультимодульного проекта оказывается указанной в одном единственном месте - в родительском проекте.
При релизе стандартным способом номер версии автоматически увеличивается. Изменить номер версии при такой конфигурации тоже несложно.
Про dependencyManagement понятно, а у подпроектов, версию для parent-а вы как указываете?
Версию для parent'а мы указываем явно:
<parent>
<groupId>com.tallink.torpedo</groupId>
<artifactId>torpedo-project</artifactId>
<version>0.0.21-SNAPSHOT</version>
</parent>
Во время релиза эта версия увеличивается автоматически, но если захотеть увеличить ее вручную и подпроектов много, то да, это утомительно.
Отправить комментарий