Где запустить mvn version:set для многомодульного проекта (с агрегатором)?

У меня есть многомодульный проект maven со сборкой/агрегацией pom. В моем проекте у меня есть общий родительский pom с установленным номером версии, и все дочерние модули наследуют родительскую версию (т. е. ни в одном из дочерних pom нет информации о версии). Однако сборка pom имеет собственный номер версии и не наследует родительский pom.

Project
|- InfoJava
|- InfoWebApp
|- InfoMavenCommon (parent pom)
|- InfoBuild (build pom - may have a unique version number and does not inherit InfoMavenCommon)
|- InfoEar

Я пытаюсь обновить версию сборки проекта (т.е. родительскую версию). Обновляя родительскую версию, мне также необходимо обновить все ссылки дочернего модуля на родительский. Бывший:

<parent>
    <groupId>com.webinfo</groupId>
    <artifactId>InfoMavenCommon</artifactId>
    <version>3.9.1</version>
    <relativePath>../InfoMavenCommon</relativePath>
</parent>

Однако я не уверен, как правильно использовать плагин версий. Единственный способ, которым я нашел это, - запустить следующее:

Project/InfoMavenCommon$ mvn versions:set -DnewVersion=3.9.0

который обновляет родительскую версию pom, но не переходит в дочерние модули, а затем

Project/InfoMavenBuild$ mvn -N versions:update-child-modules

Это не кажется «правильным» - два шага и не использование дочерних модулей обновления так, как это должно быть.

Из какого модуля я должен вызывать версии: установить цель? Есть ли одношаговое решение, чтобы родительский и все дочерние элементы автоматически обновляли свои версии?


person Eric B.    schedule 20.02.2015    source источник