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