@OliverCharlesworth proszę użyć przycisku zamykania, aby zaznaczyć odpowiedź jako duplikat
030
1
@ user3286701 być może mógłbyś zaakceptować jedną z odpowiedzi?
030
5
gradle dependenciespowinno działać. To szalone, że każdy ma gradlew app:dependenciesprawdopodobnie dlatego, że Android.
prayagupd
2
@prayagupd To powinna być odpowiedź. Pytanie dotyczy stopnia. Po przeczytaniu wysoko ocenianych odpowiedzi otworzyłem terminal i zapisałem cd do katalogu ogólnego projektu korzystającego z gradle. Wykonałem „gradle app: dependencies” i dostałem błąd „Kompilacja nieudana”, chociaż nie planowałem niczego budować. Mój projekt działa dobrze i chciałem tylko zobaczyć zależności.
ka3ak
Odpowiedzi:
604
W przypadku systemu Android użyj tej linii
gradle app:dependencies
lub jeśli masz opakowanie stopniowe:
./gradlew app:dependencies
gdzie appjest moduł twojego projektu.
Dodatkowo, jeśli chcesz sprawdzić, czy coś jest compilew porównaniu testCompilevs androidTestCompileuzależnienia, a także, co ciągnie go w:
Ach, musiałem tam wpisać nazwę modułu. Właśnie dlatego ... Dzięki!
Jenix
Właśnie zaczął studiować teraz stopień, więc trochę zmieszany. Czy mogę traktować gradlew jako grad, to znaczy, czy mogę wprowadzić takie same opcje / polecenia jak gradle z gradlew?
Jenix
1
@Jenix tak, jeśli używasz owijarki, po prostu użyj ./gradlewzamiastgradle
Chad Bingham
2
Project 'app' not found in root projectPodczas uruchamiania tych poleceń pojawia się błąd . Jednak rozwiązanie Benjaminy działało.
krock,
5
W rzeczywistości ./gradlew :dependencieszadziała. Wyświetli listę zależności dla wszystkich twoich projektów, ale łatwo jest znaleźć właściwy.
dirkjot
240
Możesz renderować drzewo zależności za pomocą polecenia gradle dependencies. Aby uzyskać więcej informacji, zapoznaj się z sekcją 11.6.4 Wyświetlanie zależności projektu od elektronicznego przewodnika użytkownika.
Gdy robię to z moim projektem dla Androida, otrzymuję tylko ten wynik: pastebin.com/fHFigAuY Sugestie?
Nilzor,
3
@Nilzor Prawdopodobnie wykonujesz polecenie w niewłaściwym katalogu (który nie zawiera build.gradlepliku) lub plik kompilacji nie stosuje żadnej wtyczki.
Benjamin Muschko
6
możesz uzyskać zależności dla konkretnego projektu za pomocą gradle: project: dependencies
@ user3526 kliknij znacznik „gradle” znajdujący się po prawej stronie ekranu. Spójrz na załączony obraz w celach informacyjnych
Nicolás Carrasco,
2
Odkryłem, że tworzy to płaską listę w AS 3.2.0, zamiast drzewa. Jednak wariant wiersza poleceń tworzy drzewo.
Tom
5
@Tom uruchom zadanie „zależności” w kategorii „pomoc”, a nie „android”. Pokazuje się jako drzewo
Maxim Berezowski
27
Często pełna test, compilei androidTestCompilewykres zależność jest zbyt wiele, aby rozpatrzyć łącznie. Jeśli chcesz tylko compilewykres zależności, możesz użyć:
Uwaga: compilezostał wycofany w nowszych wersjach programu Gradle, aw nowszych wersjach zaleca się przeniesienie wszystkich compilezależności na implementation. Zobacz tę odpowiedź tutaj
Ogólnie wyjście tej wtyczki można znaleźć w katalogu build / raporty / dependency-graph i zawiera ona trzy pliki (.dot | .png | .svg), jeśli używasz wersji wtyczki 0.5.0 .
Przykład wykresu zależności w prawdziwej aplikacji ( Zegar szachowy ):
Hej David, zrobiłem tak, jak powiedziano w instrukcjach wtyczek. Zastosowałem wtyczkę w gradiencie projektu, ale nie widzę żadnego folderu raportów w katalogu kompilacji. Czy jest coś, co musimy zrobić oprócz zbudowania i uruchomienia projektu?
W Gradle wszystko poszło do przodu, więc uważam, że to pytanie zasługuje na inną odpowiedź.
Od wersji 4.3 wprowadzono „ skany kompilacji ”. Wszystkie istotne informacje są dostępne w dokumentach Gradle ( 1 , 2 ). Dla mnie wydaje się to teraz najłatwiejszym sposobem sprawdzenia zależności (i ogólnie kompilacji) w przejrzysty, zorganizowany sposób.
Są bardzo łatwe do utworzenia, wystarczy wykonać:
gradle build --scan
(lub ./gradlew build --scanjeśli używasz opakowania)
To generuje losowo generowany link, w którym można zobaczyć skan. Otwierając ten link, podajesz swój adres e-mail i zyskujesz pełną kontrolę nad linkiem: np. udostępnij lub usuń. Zawiera wiele informacji o twojej kompilacji , nie tylko zależności. Możesz zobaczyć swoje zależności, ich hierarchie, repozytorium użyte do ich uzyskania, ale także wiele innych rzeczy na temat twojej kompilacji, a mianowicie jej wydajność (która jest interesująca w dużych złożonych kompilacjach), twoje testy, nawet dane wyjściowe konsoli i twoje konfiguracja systemu, w którym zastosowano JDK i JVM, maksymalny rozmiar sterty itp.
To jest ekran z próbnego projektu:
Skan kompilacji to udostępniany zapis kompilacji, który zapewnia wgląd w to, co się wydarzyło i dlaczego. Możesz utworzyć skan kompilacji na scans.gradle.com za darmo.
Należy jednak pamiętać, że informacje dotyczące procesu kompilacji zostaną przesłane do serwerów Gradle. Masz pełną kontrolę, aby usunąć go po zakończeniu inspekcji.
Wreszcie, możesz używać skanów kompilacji z wersjami Gradle wcześniejszymi niż 4.3, po prostu musisz ręcznie dodać wtyczkę skanów do swojego buildscript.
Edycja :
Uwzględnienie niektórych komentarzy z komentarzy i dodatkowych notatek:
1) Bardzo trudno jest to zrobić przez pomyłkę lub bez zrozumienia, że niektóre informacje o twojej kompilacji będą dostępne online (prywatne dla ciebie, z możliwością ich usunięcia, ale nadal online) ).
Podczas wykonywania gradle build --scanpojawia się następujący komunikat:
Publishing a build scan to scans.gradle.com requires accepting the Gradle
Terms of Service defined at https://gradle.com/terms-of-service. Do you
accept these terms? [yes, no]
Musisz wyraźnie napisać, yesa następnie wiadomość jest kontynuowana:
2) W Gradle Enterprise możesz hostować skany kompilacji na własnych serwerach. Nie mam jednak doświadczenia w tym zakresie i moje proponowane podejście dotyczyło standardowej dystrybucji Gradle, wykorzystując serwery Gradle do skanowania kompilacji.
3) Sam Gradle promuje skany kompilacji jako sposób radzenia sobie z większością problemów z kompilacją.
Przepraszam, że głosuję za odpowiedzią, ale IMO nie odpowiada na pytanie i nie ostrzega wystarczająco wyraźnie, że gradle build --scanpublikując szczegółowe informacje o swojej kompilacji gdzieś w Internecie - i aby ją usunąć, musisz powiązać ją z działającym adresem e-mail.
Michał
1
Hej, Michale, możesz tak głosować, jeśli tak się czujesz. Jednak muszę zapytać, czy próbowałeś? Podczas wykonywania gradle build --scanw cmd, pojawi się monit: Publishing a build scan to scans.gradle.com requires accepting the Gradle Terms of Service defined at https://gradle.com/terms-of-service. Do you accept these terms? [yes, no]. Musisz pisać ręcznie yes. Zaraz potem pojawi się komunikat: Publishing build scan... https://gradle.com/s/a12en0dasdu(losowo umieść link tego samego typu). Więc wierzę, że to wcześniej odpowiednio cię ostrzega. (1/2)
tryman
1
Możesz odwiedzić link i natychmiast usunąć skan, bez wiadomości e-mail lub czegokolwiek. Jako odpowiedź uważam, że odpowiada na pytanie . W rzeczywistości pokazuje dodatkowe informacje o twoich zależnościach (i pójście o krok dalej: dodatkowe informacje dla całej kompilacji) w porównaniu do innych podejść. Jeśli nie uważasz, że ci się podoba, jest to całkowicie w porządku, ale jest to (według mojej wiedzy) najbardziej wszechstronne narzędzie do pracy, więc warto o tym pamiętać. Wreszcie promuje go sam Gradle, jest to dosłownie ich pierwszy przewodnik (2/2)
tryman
@Michal Przepraszam, zapomniałem Cię otagować, więc być może nie widziałeś moich komentarzy. (Zredagowałem też post, aby uwzględnić komentarze, którymi
udzieliłem
2
Nie próbowałem tego - dziękuję za wyjaśnienie dotyczące akceptacji warunków. Usunąłem moje -1.
Michał
9
W Android Studio
1) Otwórz terminal i upewnij się, że jesteś w folderze głównym projektu.
Zauważ, że uruchomienie ./gradle dependenciesda ci tylko drzewo zależności folderu głównego projektu, więc wspomnianie o aplikacji w powyższy sposób, tj. ./gradlew app:dependenciesJest ważne.
dla mnie działało to bez „./”, w ten sposób: gradlew app: dependencies.
Gilad Levinson
7
Przydatne było również uruchomienie tego:
./gradlew dI --dependency <your library>
To pokazuje, w jaki sposób rozwiązuje się zależności ( dependencyInsight) i pomaga w debugowaniu w miejscu, w którym należy wymusić lub wykluczyć biblioteki w swoimbuild.gradle
Zauważ, że może zajść potrzeba zrobienia czegoś takiego, ./gradlew <module_directory>:<module_name>:dependenciesjeśli moduł ma dodatkowy katalog przed osiągnięciem swojego build.gradle. W razie wątpliwości ./gradlew tasks --allsprawdź nazwę.
To da ci wszystkie zależności w twoim projekcie i podprojektach wraz ze wszystkimi zależnościami stron trzecich.
Jeśli chcesz to zrobić w sposób programowy, będziesz potrzebował niestandardowego mechanizmu renderującego zależności - możesz zacząć od rozszerzenia AsciiDependencyReportRendererdomyślnie drukującego wykres ascii zależności.
gradle dependencies
powinno działać. To szalone, że każdy magradlew app:dependencies
prawdopodobnie dlatego, że Android.Odpowiedzi:
W przypadku systemu Android użyj tej linii
lub jeśli masz opakowanie stopniowe:
gdzie
app
jest moduł twojego projektu.Dodatkowo, jeśli chcesz sprawdzić, czy coś jest
compile
w porównaniutestCompile
vsandroidTestCompile
uzależnienia, a także, co ciągnie go w:źródło
./gradlew
zamiastgradle
Project 'app' not found in root project
Podczas uruchamiania tych poleceń pojawia się błąd . Jednak rozwiązanie Benjaminy działało../gradlew :dependencies
zadziała. Wyświetli listę zależności dla wszystkich twoich projektów, ale łatwo jest znaleźć właściwy.Możesz renderować drzewo zależności za pomocą polecenia
gradle dependencies
. Aby uzyskać więcej informacji, zapoznaj się z sekcją 11.6.4 Wyświetlanie zależności projektu od elektronicznego przewodnika użytkownika.źródło
build.gradle
pliku) lub plik kompilacji nie stosuje żadnej wtyczki../gradlew dependencies
Jeśli trudno ci nawigować po wynikach konsoli
gradle dependencies
, możesz dodać wtyczkę Raporty projektu :I wygeneruj raport HTML za pomocą:
Raport można zwykle znaleźć w
build/reports/project/dependencies/index.html
To wygląda tak:
źródło
gradle htmlDependencyReport
W Android Studio (przynajmniej od wersji 2.3.3) możesz uruchomić polecenie bezpośrednio z interfejsu użytkownika:
Kliknij kartę Gradle , a następnie kliknij dwukrotnie : twój moduł -> Zadania -> android -> androidDependencies
Drzewo zostanie wyświetlone na karcie Konsola gradientu
źródło
Często pełna
test
,compile
iandroidTestCompile
wykres zależność jest zbyt wiele, aby rozpatrzyć łącznie. Jeśli chcesz tylkocompile
wykres zależności, możesz użyć:Źródło: Gradle docs sekcja 4.7.6
Uwaga:
compile
został wycofany w nowszych wersjach programu Gradle, aw nowszych wersjach zaleca się przeniesienie wszystkichcompile
zależności naimplementation
. Zobacz tę odpowiedź tutajźródło
Jeśli chcesz wizualizować swoje zależności na wykresie, możesz użyć wtyczki generatora gradle-dependence-graph-generator .
Ogólnie wyjście tej wtyczki można znaleźć w katalogu build / raporty / dependency-graph i zawiera ona trzy pliki (.dot | .png | .svg), jeśli używasz wersji wtyczki 0.5.0 .
Przykład wykresu zależności w prawdziwej aplikacji ( Zegar szachowy ):
źródło
W systemie Android wpisz to w terminalu
Spowoduje to wyświetlenie wszystkich zależności oraz tych z nowszymi wersjami, które można uaktualnić jak
źródło
W Gradle wszystko poszło do przodu, więc uważam, że to pytanie zasługuje na inną odpowiedź.
Od wersji 4.3 wprowadzono „ skany kompilacji ”. Wszystkie istotne informacje są dostępne w dokumentach Gradle ( 1 , 2 ). Dla mnie wydaje się to teraz najłatwiejszym sposobem sprawdzenia zależności (i ogólnie kompilacji) w przejrzysty, zorganizowany sposób.
Są bardzo łatwe do utworzenia, wystarczy wykonać:
(lub
./gradlew build --scan
jeśli używasz opakowania)To generuje losowo generowany link, w którym można zobaczyć skan. Otwierając ten link, podajesz swój adres e-mail i zyskujesz pełną kontrolę nad linkiem: np. udostępnij lub usuń. Zawiera wiele informacji o twojej kompilacji , nie tylko zależności. Możesz zobaczyć swoje zależności, ich hierarchie, repozytorium użyte do ich uzyskania, ale także wiele innych rzeczy na temat twojej kompilacji, a mianowicie jej wydajność (która jest interesująca w dużych złożonych kompilacjach), twoje testy, nawet dane wyjściowe konsoli i twoje konfiguracja systemu, w którym zastosowano JDK i JVM, maksymalny rozmiar sterty itp.
To jest ekran z próbnego projektu:
Należy jednak pamiętać, że informacje dotyczące procesu kompilacji zostaną przesłane do serwerów Gradle. Masz pełną kontrolę, aby usunąć go po zakończeniu inspekcji.
Wreszcie, możesz używać skanów kompilacji z wersjami Gradle wcześniejszymi niż 4.3, po prostu musisz ręcznie dodać wtyczkę skanów do swojego buildscript.
Edycja :
Uwzględnienie niektórych komentarzy z komentarzy i dodatkowych notatek:
1) Bardzo trudno jest to zrobić przez pomyłkę lub bez zrozumienia, że niektóre informacje o twojej kompilacji będą dostępne online (prywatne dla ciebie, z możliwością ich usunięcia, ale nadal online) ).
Podczas wykonywania
gradle build --scan
pojawia się następujący komunikat:Musisz wyraźnie napisać,
yes
a następnie wiadomość jest kontynuowana:2) W Gradle Enterprise możesz hostować skany kompilacji na własnych serwerach. Nie mam jednak doświadczenia w tym zakresie i moje proponowane podejście dotyczyło standardowej dystrybucji Gradle, wykorzystując serwery Gradle do skanowania kompilacji.
3) Sam Gradle promuje skany kompilacji jako sposób radzenia sobie z większością problemów z kompilacją.
źródło
gradle build --scan
publikując szczegółowe informacje o swojej kompilacji gdzieś w Internecie - i aby ją usunąć, musisz powiązać ją z działającym adresem e-mail.gradle build --scan
w cmd, pojawi się monit:Publishing a build scan to scans.gradle.com requires accepting the Gradle Terms of Service defined at https://gradle.com/terms-of-service. Do you accept these terms? [yes, no]
. Musisz pisać ręcznieyes
. Zaraz potem pojawi się komunikat:Publishing build scan... https://gradle.com/s/a12en0dasdu
(losowo umieść link tego samego typu). Więc wierzę, że to wcześniej odpowiednio cię ostrzega. (1/2)W Android Studio
1) Otwórz terminal i upewnij się, że jesteś w folderze głównym projektu.
2) Uruchom
./gradlew app:dependencies
(jeśli nie używasz owijarki stopniowej, spróbujgradle app:dependencies
)Zauważ, że uruchomienie
./gradle dependencies
da ci tylko drzewo zależności folderu głównego projektu, więc wspomnianie o aplikacji w powyższy sposób, tj../gradlew app:dependencies
Jest ważne.źródło
Przydatne było również uruchomienie tego:
To pokazuje, w jaki sposób rozwiązuje się zależności (
dependencyInsight
) i pomaga w debugowaniu w miejscu, w którym należy wymusić lub wykluczyć biblioteki w swoimbuild.gradle
Zobacz: https://docs.gradle.org/current/userguide/tutorial_gradle_command_line.html
źródło
Zauważ, że może zajść potrzeba zrobienia czegoś takiego,
./gradlew <module_directory>:<module_name>:dependencies
jeśli moduł ma dodatkowy katalog przed osiągnięciem swojego build.gradle. W razie wątpliwości./gradlew tasks --all
sprawdź nazwę.źródło
Dla mnie było to po prostu jedno polecenie
w build.gradle dodaj
plugin
a następnie przejdź do cmd i uruchom następujące polecenie
To daje mi raport HTML Raport WOW Html 💕
To wszystko mój panie.
źródło
W przypadku najnowszych wersji Gradle (testowałem z wersją 6.4.1):
lub jeśli korzystasz z Gradle Wrapper:
źródło
Jeśli chcesz wszystkie zależności w jednym pliku na końcu w dwóch krokach. Dodaj to do swojego
build.gradle.kts
katalogu głównego projektu:Następnie zastosuj:
To da ci wszystkie zależności w twoim projekcie i podprojektach wraz ze wszystkimi zależnościami stron trzecich.
Jeśli chcesz to zrobić w sposób programowy, będziesz potrzebował niestandardowego mechanizmu renderującego zależności - możesz zacząć od rozszerzenia
AsciiDependencyReportRenderer
domyślnie drukującego wykres ascii zależności.źródło