We also have a similar structure of modules. Each in its own maven project.
Each module has its own life-cycle and its own version.
Using your module names -
You want to upgrade the services module
- You release a new version of services
- You update the rest, admin-webapp and webapp with the services new version
- You build them and release them
This methodology requires that you manage the dependencies properly.
We try to keep it simple, but with many modules, you can get in to a dependency hell.
Another option is to keep all modules in a single, multi-module maven project
- Where you have a single version for all modules (parent pom)
- You build all the project, releasing all modules with each new change
Makes an easy life of managing dependencies, but many unneeded releases.
I think both options are valid. You have to see what your team will feel easy to manage and scale over time.
I hope this helps.