2012-11-03 16 views
12

Powiedz, że mam Sonatype Nexus działający na wewnętrznym serwerze i chciałbym go użyć do proxy repo1.maven.org i innych repozytoriów. W Maven po prostu dodaję konfigurację <mirror> do settings.xml. Jak mogę to zrobić z Gradle?Jak używać Sonatype Nexus z Gradle do repozytoriów proxy?

Aktualizacja: Chciałbym to zrobić bez konieczności ciężkiej kodem URL mojego Nexus przykład do każdego projektu mam. Tak więc szukam dokładnej repliki ustawienia Maven <mirror>.

Najlepszym mogę wymyślić teraz jest zrobić coś takiego:

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

A potem mieć to w ~/.gradle/gradle.properties na komputerze każdego dewelopera:

nexusUrl = https://nexus.company.com 

Jednak to wygląda hacked i wciąż muszę dodać 5 linii do każdego projektu. Czy istnieje bardziej elegancki sposób na zrobienie tego?

Odpowiedz

12

skrypty Init może być najlepszym sposobem, aby przejść. Spójrz na ten rozdział w User Guide.

Umożliwiają one wprowadzanie logiki do wszystkich projektów.

3

Jak wyjaśniono w the documentation i about init scripts:

Stwórz foldery i plik z końcówką .gradle np .: ~/.gradle/init.d/mirror.gradle. Z treści:

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

Identyfikator fragmentu w tym adresie URL dokumentacji nie jest już obecny - do której części dokumentacji się odwołujesz? – Kkkev

+1

Ten, który znajdziesz po naciśnięciu Ctrl-F i wpisaniu "http://repo.mycompany.com/maven2" –

+0

To rozwiązanie nie ma sensu! W Maven można określić repozytorium w projekcie pom. Na komputerze możesz zastąpić go własnym repozytorium, ale jest to wybór autora, a nie autora artefaktu. W jaki sposób autor artefaktu może zdecydować, z którego repozytu lokalnego chcesz korzystać? –

Powiązane problemy