./gradle tasks
enumera "algunas" de las tareas. Mirando
http://gradle.org/docs/current/userguide/java_plugin.html hay algunos ocultos que no están en la lista. Además, otros complementos no tendrán un gráfico tan bonito de las dependencias entre tareas.
¿Hay alguna manera de
- enumerar todas las tareas en todos los complementos con gradle
- enumerar las tareas y de qué tareas dependen (algo así como las de Maven
dependency:tree
pero para tareas)
para esto puede usar la opción
--dry-run
(o-m
) que enumera las tareas que se ejecutan para un comando en particular, pero no ejecuta el comando, p. ej.puedes encontrar más aquí
fuente
Puede probar el complemento com.dorongold.task-tree con un uso simple:
Ejemplo de resultado del archivo Léame :
fuente
--no-repeat
. Fuente: github.com/dorongold/gradle-task-treePuedes pegar esto en tu
build.gradle
:o esto en tu
build.gradle.kts
:Luego ejecuta tu tarea con gradle:
Y deberías ver esto:
fuente
A <- B <- (C and D)
, esto le mostraráB-A, C-B, D-B
. ¡Todavía ayuda a algunos!El árbol de tareas de Gradle puede visualizarse
gradle tasks --all
o probar los siguientes complementos:Gráficos Gradle y Talaiot: Investigue esto: https://proandroiddev.com/graphs-gradle-and-talaiot-b0c02c50d2b1 blog, ya que enumera las tareas y dependencias de visualización gráfica. Utiliza la herramienta gratuita abierta Graphviz Gephi ( https://gephi.org/features/ )
gradle-task-tree : https://github.com/dorongold/gradle-task-tree y
gradle-visteg : https://github.com/mmalohlava/gradle-visteg
Complemento gradle-visteg : el archivo generado se puede procesar posteriormente a través de la utilidad Graphviz
dot
.Por ejemplo , la imagen png se produce de la siguiente manera:
cd build/reports/; dot -Tpng ./visteg.dot -o ./visteg.dot.png
Para obtener más información, visite la página de inicio de Graphviz .
Cualquier tarea que se use realmente para ejecutar una tarea (por ejemplo:)
build
se puede ver en una buena página HTML usando la--profile
opcióngradle --perfil de construcción limpia
Una vez que esto se haya completado, vaya a la carpeta build / reports / profile y explore el archivo .html. Verá la resolución de dependencias y otra información con el tiempo que tomó en una buena página html.
fuente
Puede acceder mediante programación al gráfico de tareas para inspeccionarlo dentro del script de compilación utilizando Gradle.getTaskGraph ()
fuente
A medida que crece su multiproyecto, la solución que marqué como correcta crece un poco extraño y difícil de leer
En cambio, pasé a mirar un proyecto específico que lo hace mucho más fácil
donde 'full-httpproxy' es el nombre de mi proyecto (y directorio como es típico).
Sin embargo, tengo curiosidad por cómo enumerar tareas en el proyecto maestro / raíz y tengo una pregunta pendiente aquí también
¿Cómo enumerar todas las tareas para el proyecto maestro solo en gradle?
ya que hacer eso no parece posible en este momento.
fuente
También puede agregar el siguiente complemento para su entorno local build.gradle, https://github.com/dorongold/gradle-task-tree
fuente
Después de la respuesta de cstroe, lo siguiente también imprime los archivos de entrada y salida de cada tarea de Gradle. Esto es útil ya que las dependencias a veces se definen por las relaciones de entrada / salida. Es decir, si la tarea B usa los resultados de la tarea A, la respuesta de cstroe no le mostrará la dependencia. Lo siguiente es muy primitivo pero muestra la lista de archivos de entrada y salida para cada tarea:
fuente