Да, это возможно, но вам нужно использовать сторонний плагин, а именно плагин Versions из Mojo / Codehaus .Вам не нужно устанавливать или делать что-то конкретное, чтобы использовать его, но оно не является частью основных плагинов.
Допустим, у вас есть следующий макет:
Root POM:
<project>
<groupId>org.example</groupId>
<artifactId>root-pom</artifactId>
<version>1.0.0-SNAPSHOT</version>
<modules>
<module>child-1</module>
...
</modules>
...
</project>
Дочерние POM, расположенные непосредственно в подкаталоге корневого POM, с внутренними зависимостями:
<project>
<parent>
<groupId>org.example</groupId>
<artifactId>root-pom</artifactId>
<version>1.0.0-SNAPSHOT</version> <!-- Hard-coded -->
<relativePath>..</relativePath>
</parent>
<artifactId>child-1</artifactId>
...
<dependencies>
<dependency>
<groupId>org.example</groupId>
<artifactId>child-2</artifactId>
<version>${project.version}</version> <!-- Dependency to another module in the reactor -->
</dependency>
</project>
Теперь, если у вас много дочерних модулей, вы можете использовать эту команду, чтобы сохранить согласованность вашего реактора:
mvn versions:set versions:commit -DnewVersion=1.1.0-SNAPSHOT
Это преобразует все ваши POM в версию 1.1.0-SNAPSHOT
(или что вы выберете), так что родительская версия в дочерних poms будет одинаковойкак корень ПОМ.По совпадению, это тот же подход, который использовался плагином релиза во время mvn release:prepare
.