2012-09-05 10 views
80

czytam ten komentarz w Gradle docs:Co to jest polecenie wykresu zależności artefaktu Gradle?

To deal with problems due to version conflicts, reports with dependency graphs 
are also very helpful. Such reports are another feature of dependency management. 

mam jakiś słoik trafiły w ale muszę dowiedzieć się, gdzie ona pochodzi. Zwykle po prostu globalnie go wykluczę, ale potrzebuję informacji o hierarchii tutaj. Jak mogę uzyskać te informacje od Ivy and Maven?

Nie wspominając, że ktoś przynosi słoiki Hibernate (dużo) na moją listę słoików i naprawdę chcę wiedzieć, od kiedy nie używam Hibernate i próbuję wyciąć tę zależność.

Odpowiedz

84

Komendą jest gradle dependencies, a jej wydajność jest znacznie poprawiona w Gradle 1.2. (Można już próbować 1,2-RC-1 dzisiaj).

+0

rzeczywiście, próbowałem, że ... Zrozumiałem, że moje zależności znajdują się w moim podprojekcie niższym poziomie (tj. Tym, od którego wszyscy inni polegają), a nie w głównym projekcie ... nie jestem pewien, czy to jest złe czy dobre w tym momencie. –

+0

Musisz uruchomić komendę dla konkretnego projektu, który cię interesuje. Zazwyczaj należy przejść do katalogu projektu i uruchomić polecenie z tego miejsca. –

+7

To nie działa we wszystkich typach projektów. Dostaję "Brak konfiguracji" i muszę uruchomić coś innego, aby to osiągnąć. Mam nadzieję, że pewnego dnia gradle poradzi sobie z tym, więc faktyczne polecenia będą predykowane. –

98

Ach, ponieważ nie miałem żadnych zależności, w moim projekcie master „Gradle Zależności” wymienia tylko te, a nie podprojektem zależności więc poprawna komenda zakończył się

gradle :<subproject>:dependencies 

więc dla mnie to było

gradle :master:dependencies 
+15

Miło, jeśli można powiedzieć "-r" dla rekursywnego – Blundell

13

Jeśli chcesz rekurencyjne zawierać podprojekty, zawsze można napisać go samodzielnie:

Wklej na najwyższym poziomie build.gradle:

task allDeps << { 
    println "All Dependencies:" 
    allprojects.each { p -> 
     println() 
     println " $p.name ".center(60, '*') 
     println() 
     p.configurations.all.findAll { !it.allDependencies.empty }.each { c -> 
      println " ${c.name} ".center(60, '-') 
      c.allDependencies.each { dep -> 
       println "$dep.group:$dep.name:$dep.version" 
      } 
      println "-" * 60 
     } 
    } 
} 

Run z:

gradle allDeps 
28

Jeśli chcesz zobaczyć współzależności na projekt i wszystkie podprojekty użyć w najwyższego poziomu build.gradle:

subprojects { 
    task listAllDependencies(type: DependencyReportTask) {} 
} 

Następnie zadzwonić Gradle :

gradle listAllDependencies 
+1

Więcej szczegółów na temat tego podejścia w poście na blogu: https://solidsoft.wordpress.com/2014/11/13/gradle-tricks-display-dependencies-for -all-podprojekty-in-multi-project-build/ –

+5

Możesz dodać to do '~/.gradle/init.gradle' zamiast dodawać je do każdej kompilacji. Wtedy działa dla wszystkich projektów na twoim komputerze, ale tylko dla ciebie. – derekv

+1

dziękuję ci dziękuję – chrismarx

16

Jeśli masz dużo konfiguracji, wynik może być dość długi. Po prostu pokazać zależności dla konfiguracji środowiska wykonawczego, należy uruchomić

gradle dependencies --configuration runtime 
+0

użyłem tego, ale nie mogę dowiedzieć się, co wskazuje –

0

dla osób chcących debugowania Gradle zależności w react-native projektów, komenda jest (excuted z projectname/android)

./gradlew app:dependencies --configuration compile 
Powiązane problemy