2011-11-14 25 views
5

Ho un progetto con molte dipendenze in molti repository remoti e anche quelle dipendenze a volte richiedono altri repository remoti.Proxy tutti i repository di dipendenze Maven tramite Nexus interno

voglio creare un ambiente build stabile e voglio la mia installazione Nexus locale per delega tutti requisiti del progetto in modo da poter riprodurre le generazioni senza andare a internet dopo ho impostato tutto una volta.

cioè il mio .m2/settings.xml sarebbe contengono:

<mirrors> 
    <mirror> 
     <id>my.public</id> 
     <url>http://localhost:8081/nexus/content/groups/public</url> 
     <mirrorOf>*</mirrorOf> 
    </mirror> 
</mirrors> 

Ma naturalmente questo non è sufficiente. Nexus non sarà proxy arbitrario ogni singola richiesta proveniente dalla mia installazione di Maven.

Attualmente come ho capito e questo è il modo in cui ho funzionato, per ogni repository remoto che incontro, creo un proxy in Nexus e lo aggiungo al gruppo pubblico.

Nel mio caso questi sono come 15 o 20 repository remoti. La maggior parte di questi è un'ulteriore dipendenza dei miei pacchetti, ovvero non è ovvio che ho bisogno di loro fino a quando eseguo una build di esperti e li colpisco. Li ho trovati per lo più referenziati in POM padre finora.

La mia domanda: c'è un modo per configurare Nexus in qualche modo quindi non ho bisogno di dover aggiungere ogni repository a mano?

Quando rileggo la mia domanda, sembra quasi che io voglia un vero proxy HTTP ma qual è il punto di Nexus allora? Ovviamente questa è una domanda retorica, ma come faccio a risolvere questo problema senza aggiungerli tutti manualmente?

Tutto quello che ho trovato nella documentazione Nexus è http://www.sonatype.com/books/nexus-book/reference/config-sect-custom.html:

... si possono incontrare i progetti che sono in grado di recuperare gli artefatti dall'installazione Nexus locale

e

... aggiungere questo repository a Nexus come nuovo repository proxy e quindi aggiungere il nuovo repository proxy al gruppo pubblico

risposta

2

Non che io sappia. Al momento disponiamo di 30-40 archivi mirrorizzati attraverso l'installazione Nexus proprio per questo motivo. Usiamo una dichiarazione mirror simile in settings.xml per forzare tutti a utilizzare il nostro repository come uno sportello unico. Tuttavia, applichiamo (tramite la politica) gli sviluppatori che non aggiungono repository ai file pom nei progetti. Invece, inviano una richiesta per aggiungere un proxy.

Problemi correlati