Ich bin mir jetzt nicht ganz sicher, ob ich Deine Fragen richtig verstanden habe. Aber ich versuche es mal:
In der settings.xml habe ich für unseren lokalen Nexus, welcher als Repository dient, folgende Einträge:
[XML]<settings>
[...]
<servers>
<server>
<id>repository</id>
<username><!-- Der Benutzername --></username>
<password><!-- Das Passwort --></password>
</server>
<server>
<id>snapshot</id>
<username><!-- Der Benutzername --></username>
<password><!-- Das Passwort --></password>
</server>
<server>
<id>releases</id>
<username><!-- Der Benutzername --></username>
<password><!-- Das Passwort --></password>
</server>
</servers>
<mirrors>
<mirror>
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<name>Nexus Repository</name>
<url>http://<!-- Adresse des Nexus -->/nexus/content/groups/public</url>
</mirro>
</mirrors>
[...]
<profiles>
<profile>
<id>nexus</id>
<!--Enable snapshots for the built in central repo to direct -->
<!--all requests to nexus via the mirror -->
<repositories>
<repository>
<id>central</id>
<url>http://central</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<url>http://central</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
[...]
<activeProfiles>
<activeProfile>nexus</activeProfile>
</activeProfiles>
</settings>[/XML]
Um dann auf den Nexus deployen zu können, muss man in der pom.xml noch folgendes eintragen:
[XML]<project>
[...]
<distributionManagement>
<repository>
<id>release</id>
<url>http://<!-- Adresse des Nexus -->/nexus/content/repositories/releases</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<url>http://<!-- Adresse des Nexus -->/nexus/content/repositories/snapshots</url>
</snapshotRepository>
</distributionManagement>
</project>[/XML]
Da Du aber keinen lokalen Nexus Server hast, der für Dich die 3 externen Repositories zusammenfasst (was auch eine Möglichkeit wäre), müsstest Du Doch einfach die Drei als "Mirrors" eintragen können, oder? In diesem Fall dürftests Du halt nicht [XML]<mirrorOf>*</mirrorOf>[/XML] schreiben.
Ich habe im Buch "Maven 2 - Eine Einführung, aktuell zur Version 2.0.9" von Kai Uwe Bachmann (ISBN 978-3-8273-2835-9) im "Anhang C - Häufig genutzte Repositories" folgendes Beispiel für das einbinden eines externen Repository gefunden:
[XML]<profile>
<id>sun</id>
<repositories>
<repository>
<id>java.net</id>
<url>https://maven-repository.dev.java.net/nonav/repository</url>
<layout>legacy</layout>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>java.net</id>
<url>https://maven-repository.dev.java.net/nonav/repository</url>
<layout>legacy</layout>
</pluginRepository>
</pluginRepositories>
</profile>[/XML]
Dann musst Du das Profile noch aktivieren. Du kannst natürlich für jedes Repository ein Profile anlegen. Oder alle Repositories über ein Profil ansprechen. Die Frage ist in dem Fall, was Du machen willst.
<repositories> enthält die Repositories für die "normalen" Bibliotheken, währenddie Repositories unter <pluginRepositories> Maven Plugins enthalten.
Zu der Geschichte mit <snapshots>: Wie
hier nachzulesen ist, steuerst Du darüber, ob Du Snapshots der Bibliotheken und/oder Maven Plugins aus dem Repository herunterladen willst oder nicht. Einen ähnliches Element gibt es auch für Releases.