2012-11-03 11 views
12

Supponiamo di avere Sonatype Nexus in esecuzione su un server interno e vorrei utilizzarlo per il proxy repo1.maven.org e altri repository. In Maven vorrei semplicemente aggiungere una configurazione <mirror> a settings.xml. Come posso farlo con Gradle?Come utilizzare Sonatype Nexus con Gradle ai rappresentanti del proxy?

Aggiornamento: Mi piacerebbe farlo senza dover codificare l'URL dell'istanza Nexus in ogni progetto che ho. Quindi sto cercando una replica esatta dell'impostazione Maven <mirror>.

il meglio che potevo venire con per ora è quello di fare qualcosa di simile:

repositories { 
    maven { 
     url "$nexusUrl/content/groups/public" 
    } 
} 

E poi hanno questo in ~/.gradle/gradle.properties sul computer di ogni sviluppatore:

nexusUrl = https://nexus.company.com 

Tuttavia, questo sembra hacked e devo ancora aggiungere le 5 linee a ciascun progetto. C'è un modo più elegante per farlo?

risposta

12

script Init potrebbe essere il modo migliore per andare. Dai un'occhiata a questo capitolo nel numero User Guide.

Forniscono un modo per inserire la logica in tutti i progetti.

3

Come spiegato in the documentation e about init scripts:

Creare un file di cartelle e file con estensione .gradle es .: ~/.gradle/init.d/mirror.gradle. Con il contenuto:

initscript { 
    repositories { 
    maven { 
     url "http://repo.mycompany.com/maven2" 
    } 
    } 
} 
+0

L'ID del frammento in questo URL della documentazione non è più presente, a quale parte della documentazione si riferisce? – Kkkev

+1

Quello che si trova quando si preme Ctrl-F e digitare "http://repo.mycompany.com/maven2" –

+0

Questa soluzione manca il punto! In Maven puoi specificare un repository nel progetto pom. Sul tuo PC puoi sovrascriverlo con il tuo repository, ma questa è la scelta dello sviluppatore, non dell'autore del manufatto. Come può l'autore dell'artefatto decidere quale repository locale si desidera utilizzare? –

Problemi correlati