release plugin has an update-versions target and an autoVersionSubmodules parameter, which sets the versions of submodules to the parent version of the project.
Usage example here .
Now, if you have dependencies between your submodules ( Module B depends on Module A ), they will not be updated by the release plugin.
To solve this problem, you can use ${project.version} when defining a dependency on Module A in Module B pom.xml .
For example (in Module B pom.xml ):
<dependency> <groupId>test</groupId> <artifactId>module-a</artifactId> <version>${project.version}</version> </dependency>
(this will work because both versions of Module A and Module B same and are derived from the parent version of the project)
source share