Я сопровождаю многомодульный java проект. При обновлении версии родительского модуля, я каждый раз, стыдно признаться, открывал файл pom.xml каждого дочернего модуля и вручную изменял номер версии родителя. Номер версии в ссылках на родительский проект опустить нельзя – произойдет ошибка. Указывается номер версии в pom-файле:
1 2 3 4 5 6 7 8 9 10 11 |
<?xml version="1.0" encoding="UTF-8"?> <project ... > <modelVersion>4.0.0</modelVersion> <parent> <groupId>hidden</groupId> <artifactId>hidden</artifactId> <!-- Номер версии --> <version>1.1.2</version> </parent> ... </project> |
Поскольку модулей много, а минорная версия родительского проекта изменяется часто, я пересилил себя и решил найти способ автоматизировать обновления номера версии всего проекта разом. Мне удалось найти несколько вариантов решения проблемы, но самым простым и удобным, для моего конкретного случая, мне показался versions-maven-plugin. Использовать его чрезвычайно просто:
-
Переходим в корневой каталог проекта и выполняем команду:
1$ mvn versions:set -DnewVersion=1.1.3
Во всех файлах pom.xml номер версии проекта изменится на 1.1.3. Также в каждом модуле будет создан файл pom.xml.versionsBackup, в котором будет сохранен оригинальный файл pom.xml.
-
Убеждаемся, что после проведенных изменений проект остался в согласованном состоянии, если что-то пошло не так, откатываем изменения:
1$ mvn versions:revert
-
Если все хорошо, удаляем резервные файлы:
1$ mvn versions:commit