2011-12-05 16 views
20

Chcę również użyć lokalnego repozytorium maven. Znalazłem JIRA-Issue http://issues.gradle.org/browse/GRADLE-1173 do tego, ale dostosowując mój plik kompilacji gradle w ten sposób niektóre zależności migawki, które są dostępne tylko w lokalnym repozytorium maven nie zostały znalezione. Pojawia się błąd, że nie znaleziono zależności migawki.Jak skonfigurować maven lokalnego i zdalnego repozytorium w gradle kompilacji?

Czy możliwe jest posiadanie jednego lokalnego i jednego zdalnego repozytorium?

Oto odpowiednia część mojego Gradle plik build:

apply plugin: 'maven' 

repositories { 

    mavenLocal() 

    maven { 
     credentials { 
      username "myusername" 
      password "mypassword" 
     } 
     url "http://myremoterepository" 
    } 

} 
+1

Nie widzę powodu, dlaczego powinnam” t działa. Czy możesz spróbować tymczasowo wyłączyć zdalne repozytorium maven i odpowiednie zależności i zobaczyć, co się dzieje? Możliwe, że 'mavenLocal()' nie zgaduje poprawnie lokalizacji repozytorium. Spróbuj jawnie skierować go we właściwe miejsce, używając 'mavenRepo urls:" file: ///home/user/.m2/repository "' zamiast 'mavenLocal()' i zobacz, co się stanie. – rodion

+0

Należy pamiętać, że 'X.Y-SNAPSHOT' jest zawsze _older_ niż' X.Y', więc jeśli dodasz '-SNAPSHOT', to także" Y "w przygotowaniu do ewentualnego wydania. Jeśli po prostu dodasz '-SNAPSHOT' do już opublikowanego' X.Y', to znajdziesz 'X.Y' zamiast' X.Y-SNAPSHOT'. –

Odpowiedz

21

również potrzebne

  • Run mvn install do artefakty ręcznie skopiować artefakty w lokalnym repo (oczywiście tylko wtedy, gdy masz źródła)
  • uruchomienie lokalnego serwera
  • skopiuj do lokalnego repo I zrobić podobną konfigurację z moim projektem i mogę zweryfikować twoją konfigurację build.gradle pod warunkiem, że twój Maven jest poprawnie skonfigurowany.

    Gradle „s mavenLocal() opiera się na definicji localRepository z Mavensettings.xml file:

    <localRepository>USER_HOME\.m2\repository</localRepository> 
    

    settings.xml powinny być w każdej swojej M2_HOME/conf lub swojej USER_HOME/.m2 directory. należy sprawdzić:

    1. Maven jest prawidłowo zainstalowana
    2. M2_HOME zmienna istnieje
    3. settings.xml ma prawidłową localRepository zdefiniowany ..
  • +0

    Niektóre osoby zastępują lokalizację lokalnego repozytorium maven (na przykład w IDE).Tak więc wolałbym umieścić jawne miejsce dla maven repo: 'maven { url uri (ścieżka_republiczna_lokalna) }' gdzie 'ścieżka_subskrypcji_lokalnej' jest pobierana z' gradle.properties' –

    +0

    Czy ktoś wie, jakie zmienne środowiskowe muszę skonfigurować w systemie Windows ? moja instalacja maven jest na ścieżce, mam zmienną einvironment M2_HOME wskazującą na folder, w którym znajduje się plik settings.xml, maven sam rozwiązuje repozytorium, ale gradle nie. Buduje się, gdy pubtujęToMavenLocal, ale nic nie pojawia się w repozytorium. – UncleBob

    0

    Maven może korzystać tylko jeden lokalny („local” = na twardym dysku komputera, na którym działa) repozytorium Maven.

    Jeśli potrzebujesz więcej, masz opcje:

    • uruchomić serwer zdalny (jak firma szerokiej proxy) i rozmieścić tam wszystko. Umieść ten serwer jako lustro w swoim settings.xml.
    +0

    Wystarczy mi jeden lokalny - jeden i jeden zdalny repozytorium maven, a nie wiele lokalnych repozytoriów – Cengiz

    +0

    W takim przypadku edytuj swoje pytanie i dodaj następujące informacje: jaki błąd występuje w artefaktach migawki? –

    Powiązane problemy