PROPOSAL 1: PerProject and PerPhase Executions
I've recently introduced the installAtEnd/deployAtEnd as an experimental feature which should improve the behavior of Maven without having to wait for the implementation in Maven Core, which would have a huge impact.
The reason is that you only want to install and/or deploy only after all modules have been build and verified successfully.
This feature works for most projects, however there are cases which cannot be solved by the plugin solution and require a change in the handling of lifecycles in Maven Core.
Up unto the verify-phase you want to execute all phases per project, whereas the install and deploy should be executed per phase.
Consider a root project with 2 modules, these should be executed like this
root : validate ... verify
module1: validate ... verify
module2: validate ... verify
root : install
root : deploy
After one of the google hangout session we came up with the following idea: divide the build in pre-build, build and post-build
First the pre-build would do a validate of the whole project.
The build runs from initialize up to verify
The post-build would handle the distribution, being install/deploy