Repository is one of the fondamental maven concept. It's simple to understand but fair usage request a bit of practise.
You should have a clearer idea of repository management best practises through the following examples and #counterexamples.
Initial configuration
This configuration come with maven without doing anything.

The "simple project" pom.
Extended usage
Without repository manager

Take a look on the "extended project" pom.
With repository manager

The "extended project" pom don't change, we just add mirrors section in the settings.xml (M2_HOME/conf/settings.xml or ~/.m2/settings.xml).
Take a look on the Mirrors definitions in settings.xml.
Complex usage
Counterexamples
Single repo mirroring multiple repositories
THIS IS A COUNTEREXAMPLE
Mirror repository defined in place of original repository.
THIS IS A COUNTEREXAMPLE
Annexes
pom.xml
Simple project
Extended project
Note that some repository declarations are useless:
- Jetty is now available on central repository so you can remove
- Project only need snapshot version of cargo plugin so you can remove
- The project don't have any dependencies on snapshot version of codehaus artefacts so you can remove
Advanced project
Settings.xml including repository mirrors definitions
