2012-05-02 13 views
82

./gradle tasks enumera "algunas" tareas. En cuanto a http://gradle.org/docs/current/userguide/java_plugin.html hay otros ocultos no mencionados. Además, otros complementos no tendrán un gráfico bonito y bonito de las dependencias entre tareas.¿Hay alguna manera de enumerar dependencias de tareas en Gradle?

¿Hay una manera de

lista
  1. todas las tareas en todos los plugins con Gradle
  2. lista de las tareas y las tareas que dependen de (una especie de experta de depenceny:tree pero para tareas)

Respuesta

88

puede usar el distintivo --todos para obtener una lista más detallada de las tareas disponibles y las dependencias de tareas

gradle tasks --all 

EDITAR: según lo observado por Radim en los comentarios, este comando no informa dependencias, para gradle 3.3 y posteriores.

+0

no parece enumerar una tarea para descargar dependencias de la web en cualquier lugar ??? Ejecutar el eclipse de tarea claramente descarga cosas pero no está seguro de dónde está esa dependencia ... ¿no hay forma de sobrecargarlo? –

+2

la acción de descargar recursos no está vinculada a una tarea dedicada. Las dependencias en gradle se agregan a las configuraciones. Tan pronto como usted (en su propia implementación de tareas) o gradle (en sus propias tareas proporcionadas) haga referencia a los archivos de esta configuración, se desencadena el mecanismo de resolución. –

+33

Esto no muestra las dependencias, al menos con Gradle 1.5 o 1.7. ¿Es que una vez lo hizo o es una respuesta incompleta? –

7

Puede tener acceso mediante programación el gráfico tarea de inspeccionar dentro de la escritura de la estructura utilizando Gradle.getTaskGraph()

+5

gradle.getTaskGraph() solo le muestra las tareas que se ejecutarán en su compilación de gradle actual Y esta tareaGraph solo está disponible en la fase de ejecución. –

14

informes Gradle --profile generación limpia

Una vez completado esto, vaya a construir// carpeta de perfil y explorar el archivo .html. Verás la resolución de dependencias y otra información con el tiempo que tardó en una buena página html.

+7

El informe no contiene información sobre las dependencias entre tareas. Solo enumera secuencialmente todas las tareas que se ejecutaron durante la compilación. – rwitzel

12

Usted puede intentar com.dorongold.task-tree plugin con un uso sencillo:

gradle <task 1>...<task N> taskTree 
+3

Buen plugin, gracias por la sugerencia –

+1

excelente herramienta !! ¡Gracias! – landerlyoung

2

medida que su multiproyecto crece, la solución he marcado como correcta crece un poco unweildy y difícil de leer

gradle tasks --all 

En cambio, he pasó a mirar un proyecto específico que lo hace mucho más fácil

gradlew :full-httpproxy:tasks --all 

donde 'full-httpproxy' es el nombre de mi proyecto (y el directorio como es típico).

Sin embargo, estoy curioso cómo enumerar las tareas en el proyecto principal/root sin embargo y tener una cuestión pendiente aquí también

How to list all tasks for the master project only in gradle?

que no parece posible hacer eso en este momento.

16

lista de las tareas y las tareas que dependen de (más o menos como la del experto depenceny: árbol, pero para las tareas)

Para ello se puede utilizar --dry-run (o -m) opción que enumera las tareas que son ejecutado para un comando particular, pero no ejecuta el comando, por ejemplo

gradle assemble --dry-run 

usted puede encontrar más here

6

Usted puede pegar esto en su build.gradle:

gradle.taskGraph.whenReady {taskGraph -> 
    println "Found task graph: " + taskGraph 
    println "Found " + taskGraph.allTasks.size() + " tasks." 
    taskGraph.allTasks.forEach { task -> 
     println task 
     task.dependsOn.forEach { dep -> 
      println " - " + dep 
     } 
    } 
} 

Luego ejecutar su tarea con Gradle:

./gradlew build 

Y hay que ver esto :

Found task graph: [email protected] 
Found 19 tasks. 
task ':compileJava' 
    - task 'compileJava' input files 
task ':compileScala' 
    - task 'compileScala' input files 
    - compileJava 
task ':processResources' 
    - task 'processResources' input files 
task ':classes' 
    - [email protected] 
    - task 'classes' input files 
    - compileJava 
    - dirs 
    - compileScala 
    - processResources 
task ':jar' 
    - task 'jar' input files 
task ':assemble' 
    - task 'assemble' input files 
    - org.gradle.api.inter[email protected]5bad9616 
task ':compileTestJava' 
    - task 'compileTestJava' input files 
task ':compileTestScala' 
    - task 'compileTestScala' input files 
    - compileTestJava 
task ':processTestResources' 
    - task 'processTestResources' input files 
task ':testClasses' 
    - processTestResources 
    - task 'testClasses' input files 
    - compileTestScala 
    - [email protected] 
    - compileTestJava 
    - dirs 
task ':compileIntegrationTestJava' 
    - task 'compileIntegrationTestJava' input files 
task ':compileIntegrationTestScala' 
    - task 'compileIntegrationTestScala' input files 
    - compileIntegrationTestJava 
task ':processIntegrationTestResources' 
    - task 'processIntegrationTestResources' input files 
task ':integrationTestClasses' 
    - processIntegrationTestResources 
    - compileIntegrationTestJava 
    - [email protected] 
    - compileIntegrationTestScala 
    - dirs 
    - task 'integrationTestClasses' input files 
task ':composeUp' 
    - task 'composeUp' input files 
task ':integrationTest' 
    - task ':composeUp' 
    - task 'integrationTest' input files 
task ':test' 
    - task 'test' input files 
task ':check' 
    - task 'check' input files 
    - task ':test' 
    - task ':integrationTest' 
task ':build' 
    - task 'build' input files 
    - check 
    - assemble 
Cuestiones relacionadas