2015-01-03 18 views
6

Próbuję zachować to samo repozytorium w moim systemie plików dla maven i gradle. Ale mam pewne problemy.Gradle pobieranie zależności do pamięci podręcznej zamiast do repozytorium maven

Mam następujące pliki w moim pliku build.gradle.

repositories { 
    mavenLocal() 
    mavenCentral() 
} 

dependencies { 
    compile group: 'org.codehaus.groovy', name: 'groovy-all', version: '2.3.9' 
    runtime group: 'org.codehaus.groovy', name: 'groovy-all', version: '2.3.9' 
    runtime 'org.xerial:sqlite-jdbc:3.8.7' 
} 

GRADLE_HOME jest D:\Programming\Java\gradle-2.2.1
GRADLE_USER_HOME jest D:\Programming\Java\.m2

Moja Gradle domu jest taki sam jak mój repozytorium Maven.

Ale gdy zależności są pobierane za pośrednictwem gradle, są one pobierane do GRADLE_USER_HOME\cache zamiast do folderu z repozytorium. Jakiej konfiguracji brakuje mi?

EDYTOWANIE Sprawdziłem rozdział dotyczący zarządzania zależnościami książki Gradle In Action. Nic. Sprawdziłem na stronie gradle na stronie dependency management, ale po prostu mówi, że jest używana pamięć podręczna.

Wygląda na to, że nie ma takiej opcji w gradle. Czy ktoś może potwierdzić?

Odpowiedz

6

Brak ustawień, które to zmieniają. Nie ma repozytorium gradle jako takiego. Poza tym wydaje się, że niewłaściwym pomysłem jest stopniowe używanie folderu repozytorium jako pamięci podręcznej zależności z powodu bałaganu.

Jeśli próbujesz opublikować artefakty zbudowane przez gradle do wspomnianego repozytorium maven, powinieneś prawdopodobnie rzucić okiem na wtyczkę maven-publish.

Jeśli próbujesz użyć artefaktów z tego repozytorium w swojej kompilacji, najlepszym rozwiązaniem będzie dodanie do repozytoriów mavenLocal(), a następnie użycie funkcji compile w twoich zależnościach.

+1

Wiem o obu powyższych rzeczach. Częścią tego jest to, że jeśli chcę, aby artefakt został umieszczony w repozytorium maven, mogę go użyć ponownie w innych grach typu "gradle/maven"? Sposób w jaki aktualnie to robię najpierw pobierając go przez Mavena, a następnie używając go w Maven/gradle w razie potrzeby. –

+0

@AseemBansal Chcesz umieścić go tam, aby nie trzeba było ponownie pobierać go, gdy wykonujesz inne kompilacje, które używają tego samego (zewnętrznego) artefaktu? Jeśli gradle ma już artefakt w pamięci podręcznej, będzie on ponownie użyty, gdy tylko będzie to możliwe. – Insomniac

+3

Tak, dokładnie tego chcę. Ale Maven nie użyje tego artefaktu. Potrzebuję maven, ponieważ wsparcie dla [gradle jest zepsute] (http://stackoverflow.com/questions/22339142/gradle-1-10-internal-maven-repository-indexing-forever-in-intellij-13) w IntellijIdea I nie można zacząć używać gradle wszędzie. Również z jakiegoś dziwnego powodu gradle pobiera zależności i nie wykorzystuje zależności z pamięci podręcznej, jeśli nie są one obecne w lokalnym repozytorium. –

0

Tak, czytałem kod źródłowy i potwierdziłem tylko Nie ma ustawienia, aby to zmienić.

Oto moje rozwiązanie:

  1. zainstalować lokalnego menedżera repozytorium Maven jak Nexus.

  2. konfigurowanie gradle przy użyciu tego repozytorium.

Powiązane problemy