У меня есть мультимодульный проект Maven, и я хотел бы обновить версии разработки до заданного значения с помощью скрипта. Агрегатор POM - это только агрегатор, и дети не наследуют его. Это важно, потому что все артефакты наследуются от других файлов POM. Вот моя структураОбновление версий в многомодульном проекте Maven
aggregator/
--projectA
--projectB
Также projectB
имеет зависимость Maven на projectA
.
Сначала я попробовал:
mvn -DnewVersion=0.28-SNAPSHOT -DupdateMatchingVersions=true versions:set
Это только обновленная версия этого aggregator
проекта.
Если я запускаю процесс выпуска Maven, он правильно обновляет зависимость projectB
от projectA
, чтобы использовать новую версию разработки после сборки выпуска. Поскольку процесс выпуска справляется с этим хорошо, я думал, что использование плагина выпуска может решить мою проблему.
Так что я попытался следующие:
mvn -DdevelopmentVersion=0.28-SNAPSHOT -DautoVersionSubmodules=true --batch-mode release:update-versions
Это обновленное все мои подпроектов правильно. Однако он не обновил версию зависимостей projectB
для projectA
.
Что такое простой способ обновления всех версий разработки в моем проекте, включая зависимость projectB
от projectA
?
Спасибо за информацию о версиях: set. Это лучше объясняет поведение. –
Возможно, изменилось значение по умолчанию для 'updateMatchingVersions'? В mvn 3.2.5 по умолчанию это 'истина', и мне нужна обратная. 'mvn versions: set' изменил больше версий, чем я хотел. Я почесал голову над этим, пока не нашел этот ответ! –