traduccion - gradle vs maven
¿Hay alguna manera de enumerar dependencias de tareas en Gradle? (7)
enumere las tareas y las tareas de las que dependen (algo así como el depenceny de maven: árbol pero para tareas)
para esto puede usar la --dry-run
(o -m
) que enumera las tareas que se ejecutan en orden para un comando particular, pero no ejecuta el comando, por ejemplo
gradle assemble --dry-run
puedes encontrar más here
./gradle tasks
enumera "algunas" de las tareas. Mirando http://gradle.org/docs/current/userguide/java_plugin.html hay otros ocultos que no están en la lista. Además, otros complementos no tendrán un gráfico bonito y bonito de las dependencias entre tareas.
¿Hay alguna manera de
- enumera todas las tareas en todos los complementos con gradle
- enumere las tareas y las tareas de las que dependen (algo así como el
depenceny:tree
de mavendepenceny:tree
pero para tareas)
A medida que su multiproyecto crece, la solución que marqué como correcta crece un poco floja y difícil de leer
gradle tasks --all
En cambio, me he movido 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, tengo curiosidad de cómo enumerar las 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.
Puede acceder mediante programación al gráfico de tarea para inspeccionarlo dentro del script de construcción usando Gradle.getTaskGraph ()
Puede probar el com.dorongold.task-tree con un uso simple:
gradle <task 1>...<task N> taskTree
Puedes pegar esto en tu 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 ejecuta tu tarea con gradle:
./gradlew build
Y deberías ver esto:
Found task graph: org.gradle.execution.taskgraph.DefaultTaskGraphExecuter@36eb780c
Found 19 tasks.
task '':compileJava''
- task ''compileJava'' input files
task '':compileScala''
- task ''compileScala'' input files
- compileJava
task '':processResources''
- task ''processResources'' input files
task '':classes''
- org.gradle.api.internal.tasks.DefaultTaskDependency@287a7782
- task ''classes'' input files
- compileJava
- dirs
- compileScala
- processResources
task '':jar''
- task ''jar'' input files
task '':assemble''
- task ''assemble'' input files
- org.gradle.api.internal.artifacts.DefaultPublishArtifactSet$ArtifactsTaskDependency@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
- org.gradle.api.internal.tasks.DefaultTaskDependency@42c1fa08
- 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
- org.gradle.api.internal.tasks.DefaultTaskDependency@7c8aa0fe
- 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
gradle --profile clean build
Una vez que esto esté completo, vaya a la carpeta de creación / informes / perfil y explore 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.
puede utilizar el distintivo --all para obtener una lista más detallada de las tareas disponibles y las dependencias de tareas
gradle tasks --all
EDITAR: como observó Radim en los comentarios, este comando no informa dependencias, para gradle 3.3 y posteriores.