2011-06-30 10 views
5

Chciałbym skonfigurować moją kompilację tak, aby automatycznie próbowała pobrać artefakt z maven central iff nasz serwer nexus jest nieosiągalny. Mam następujące ustawienia w pliku settings.xml i nie wiem, jak to zmienić (jeśli to możliwe).Jak skonfigurować program maven, aby uzyskać dostęp do serwera centralnego, jeśli serwer nexus nie działa?

<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://mynexus</url> 
    <releases><enabled>true</enabled></releases> 
    <snapshots><enabled>true</enabled></snapshots> 
    </repository> 
</repositories> 
<pluginRepositories> 
    <pluginRepository> 
    <id>central</id> 
    <url>http://mynexus</url> 
    <releases><enabled>true</enabled></releases> 
    <snapshots><enabled>true</enabled></snapshots> 
    </pluginRepository> 
</pluginRepositories> 
</profile> 
</profiles> 

<activeProfiles> 
    <activeProfile>nexus</activeProfile> 
</activeProfiles> 

Odpowiedz

2

Aby korzystać z repozytorium menedżera (Nexus zestawie) trzeba mieć element mirrorOf * zdefiniowaną że przechwyci wszystkie adresy URL repozytorium i wysłać je do Nexusa na rozmiar. W Maven2 i 3 element mirrorOf nie może zostać skonfigurowany w profilu. Oznacza to, że nie ma łatwego sposobu przełączania się bez zmiany ustawień.

Będziesz musiał skomentować sekcję lusterek, a następnie dezaktywować profil Nexus, aby Maven powrócił do standardowego zachowania.

Na szczęście Nexus jest bardzo stabilny i nigdy nie powinien się obniżać.

+0

+1. Co więcej, przez "nieosiągalny" uważam, że ma na myśli "kiedy jesteś poza biurem i nie masz VPN". – carlspring

+0

Dzięki, ale w rzeczywistości nieosiągalnym miałem na myśli coś bardziej katastrofalnego, jak problem z siecią w węźle obsługującym serwer Nexus. Miałem nadzieję na zautomatyzowane przełączanie awaryjne na maven w tym przypadku, aby nie zakłócać kompilacji podczas diagnozowania problemu Nexusa. –

+1

To brzmi fajnie w teorii, ale w rzeczywistości to nie pomoże, a oto dlaczego: Zazwyczaj Nexus jest proxy bardziej niż tylko Central, w tym repozytoriów wewnętrznych. Możesz wpływać na to, w jaki sposób Nexus lokalizuje artefakty według kolejności w ustawieniach grupy, a także według reguł rutowania. Jeśli nagle zrzucisz to wszystko z obrazu, najlepiej, jeśli twoi twórcy osiągną różne wyniki, najprawdopodobniej cała grupa rzeczy nie zostanie znaleziona, co skutkuje awariami kompilacji. –

Powiązane problemy