In my opinion the correct way to organize a multi-module Maven project is to have one project to keep track of artifact versions by means of its dependencyManagement
section, which is the parent of all other projects; and an aggregator project which contains all the other projects as modules
, parent included.
This allows you to centralize version handling for dependencies both between your projects and towards external libraries. You still have to explicitly keep track of the correspondence between each project's version in its pom and in the parent project, as well as the correspondence between the parent's version in its pom and in all its descendents.
I agree that it's a lot of work, and it's very easy to make mistakes: consider automating it with custom plugins and/or scripts. The Maven Release plugin could be of help on this problem.