Korrigiere mich, wenn ich falsch liege, aber ein Mirror wird verwendet, um den gesamten Verkehr auf eine bestimmte Repository-URL umzuleiten und alles andere zu blockieren (einschließlich Maven Central Repo).
Was passiert nun, wenn ich eine Spiegelung auf http://a.com:8081
und ein Repository auf http://b.com:8081
habe? Würde die zweite URL jemals verwendet werden? Ich nehme an, die Antwort ist eine Nein. Können Sie mehrere Spiegel haben?
Korrigiere mich, wenn ich falsch liege, aber ein Mirror wird verwendet, um den gesamten Verkehr auf eine bestimmte Repository-URL umzuleiten und alles andere zu blockieren (einschließlich Maven Central Repo).
Das ist nicht ganz richtig. Artefakte werden von Maven heruntergeladen, indem sie in definierten Repositories durchsucht werden. Diese Repositories sind im Projekt-POM oder in den Maven-Einstellungen definiert. Aber wie in der Mirror-Dokumentation angegeben:
Sie können jedoch eine alternative Spiegelung für ein bestimmtes Repository verwenden, ohne die Projektdateien zu ändern.
Nehmen wir das Beispiel aus der Dokumentation und kommentieren Sie es:
%Vor%Dies definiert einen einzelnen Spiegel, der verwendet wird, wenn Maven eine Abhängigkeit von Maven Central holen möchte. Angenommen, Sie haben 2 aktuelle Repositorys, bei denen es sich um Maven Central und ein benutzerdefiniertes Repo A handelt. Was passiert, ist Folgendes:
repo1.maven.org
treffen. Stattdessen wird es von uk.maven.org
abgerufen, was die URL ist, die im Spiegelkonfigurationselement definiert ist. Wie dieses Beispiel zeigt, gilt eine Spiegelung nur für bestimmte Repositories, die mit dem Konfigurationselement <mirrorOf>
definiert sind. Im vorherigen Fall hatten wir <mirrorOf>central</mirrorOf>
, was "Mirror Maven Central" bedeutet. Dieses Element kann verschiedene Werte haben und die Dokumentation gibt Beispiele :
Beispiele:
*
= allesexternal:*
= Alles nicht auf dem lokalen Host und nicht dateibasiert.repo,repo1
= Repo oder Repo1*,!repo1
= alles außer repo1:
Was passiert nun, wenn ich eine Spiegelung auf
http://a.com:8081
und ein Repository aufhttp://b.com:8081
habe? Würde die zweite URL jemals verwendet werden? Ich nehme an, die Antwort ist ein Nein.
Das obige zeigt, dass die Antwort nicht streng nein ist. Die Spiegelung auf http://a.com:8081
wird verwendet, wenn Maven versucht, eine Abhängigkeit von einem der Repositories, die es spiegelt, zu holen. Wenn es das Repository tatsächlich auf http://b.com:8081
spiegelt, werden niemals Anfragen an http://b.com:8081
gesendet (sie werden zu http://a.com:8081
umgeleitet); aber wenn nicht, wird Maven weiterhin Abhängigkeiten von http://b.com:8081
wie üblich holen.
Können Sie mehrere Spiegel haben?
Ja, können Sie.
Tags und Links maven