one other "best" way is to create a parent pom beside the multimodule pom which will provide a dependency management containing the multimodule project reference with the version of the parent pom it self.
If the multimodule project need one other multimodule project as dependency this will be the best for you.
The parent pom have to be part of the multimodule pom:
<modules>
<module>my.parent.Pom</module>
<module>my.first.project</module>
<module>my.second.project</module>
<module>my.third.project</module>
</modules>
And the parent pom should contains the dependency management for your multimodule project
<version>VersionNumber</version>
<packaging>pom</packaging>
...
...
<dependencyManagement>
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>my.first.project</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>my.second.project</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>my.third.project</artifactId>
<version>${project.version}</version>
</dependency>
All your multimodule project will not define the groupId and the version number because they will got those information from the parent pom and additionally if the project "third" need the dependency my.first.project then the dependency in the project "third" pom file will be:
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>my.first.project</artifactId>
</dependency>
This is the way or we are dealing with the multi module projects and version management.