PROPOSAL 2: Either install or deploy
In general one should either run 'mvn verify' or 'mvn deploy', there's often no reason to run 'mvn install'. The only reason I can think of is when you have 2 separate projects (not part of the same multimodule), one depending on the other and you want to test this.
To ensure that your projects build the same as your co-workers, you should always try to deploy it. However, there are several reasons why a deploy could fail: network problems, authentication/authorization issues, repository manager policies, etc. However, this is still after every install-phase, so the local repository is polluted.
This is as unpleasant as for a developer local repository as for a CI-server local repo.
The proposal is to "branch" the final phases.
Calling any phase up until the verify will stay the same.
Calling 'mvn install' would call these phases: validate ... verify, install (nothing new here)
Calling 'mvn deploy' would call these phases: validate ... verify, deploy (no more install)