./gradle tasks
wymienia „niektóre” z zadań. Patrząc na
http://gradle.org/docs/current/userguide/java_plugin.html , są ukryte, których nie ma na liście. Ponadto inne wtyczki nie będą miały tak ładnego, ładnego wykresu zależności między zadaniami.
Czy jest sposób
- wypisuje wszystkie zadania we wszystkich wtyczkach z gradle
- wypisz zadania i od jakich zadań zależą (trochę jak maven,
dependency:tree
ale w przypadku zadań)
w tym celu można użyć
--dry-run
(lub-m
) opcji, która wyświetla zadania, które są wykonywane w kolejności dla danego polecenia, ale nie wykonuje polecenia, np.możesz znaleźć więcej tutaj
źródło
Możesz wypróbować wtyczkę com.dorongold.task-tree z prostym użyciem:
Przykładowy wynik z pliku readme :
źródło
--no-repeat
. Źródło: github.com/dorongold/gradle-task-treeMożesz to umieścić w
build.gradle
:lub to do twojego
build.gradle.kts
:Następnie uruchom zadanie za pomocą gradle:
Powinieneś zobaczyć to:
źródło
A <- B <- (C and D)
, to pokaże ciB-A, C-B, D-B
. Nadal pomaga niektórym!Drzewo zadań gradle można wizualizować za pomocą
gradle tasks --all
lub wypróbować następujące wtyczki:Graphs Gradle i Talaiot: spójrz na to: https://proandroiddev.com/graphs-gradle-and-talaiot-b0c02c50d2b1 blog, ponieważ zawiera graficzną listę zadań i zależności. Wykorzystuje darmowe, otwarte narzędzie Graphviz Gephi ( https://gephi.org/features/ )
drzewo zadań-gradle : https://github.com/dorongold/gradle-task-tree and
gradle-visteg : https://github.com/mmalohlava/gradle-visteg
Wtyczka gradle-visteg : Wygenerowany plik można poddać dalszej obróbce za pomocą narzędzia Graphviz
dot
.Na przykład obraz png jest tworzony w następujący sposób:
cd build/reports/; dot -Tpng ./visteg.dot -o ./visteg.dot.png
Więcej informacji można znaleźć na stronie głównej Graphviz .
Jakiekolwiek zadania są faktycznie używane do uruchomienia zadania (np .:),
build
można wyświetlić na ładnej stronie HTML za pomocą--profile
opcjigradle --profile czysta kompilacja
Po zakończeniu przejdź do folderu build / reports / profile i przeglądaj plik .html. Zobaczysz rozwiązywanie zależności i inne informacje z czasem na ładnej stronie HTML.
źródło
Możesz programowo uzyskać dostęp do wykresu zadań, aby sprawdzić go w skrypcie kompilacji za pomocą Gradle.getTaskGraph ()
źródło
W miarę jak Twój multiprojekt rośnie, rozwiązanie, które oznaczyłem jako poprawne, staje się nieco nieczytelne i trudne do odczytania
Zamiast tego przeszedłem do przyjrzenia się konkretnemu projektowi, co znacznie uprościło sprawę
gdzie „full-httpproxy” to nazwa mojego projektu (i typowego katalogu).
Jestem jednak ciekawy, jak wymienić zadania w projekcie głównym / głównym i mam tu również ważne pytanie
Jak wyświetlić listę wszystkich zadań dla projektu głównego tylko w Gradle?
ponieważ nie wydaje się to teraz możliwe.
źródło
Możesz także dodać następującą wtyczkę do swojego środowiska lokalnego build.gradle, https://github.com/dorongold/gradle-task-tree
źródło
Po odpowiedzi udzielonej przez cstroe, poniżej również wypisuje pliki wejściowe i wyjściowe każdego zadania Gradle. Jest to przydatne, ponieważ zależności są czasami definiowane przez relacje wejścia / wyjścia. To znaczy, jeśli zadanie B wykorzystuje dane wyjściowe zadania A, odpowiedź cstroe nie pokaże zależności. Poniższe jest bardzo prymitywne, ale pokazuje listę plików wejściowych i wyjściowych dla każdego zadania:
źródło