# TaskExecutionGraph

@ServiceScope(value = [Build::class, Project::class])
interface TaskExecutionGraph

A `TaskExecutionGraph` is responsible for managing the execution of the Task instances which are part of the build. The `TaskExecutionGraph` maintains an execution plan of tasks to be executed (or which have been executed), and you can query this plan from your build file.

You can access the `TaskExecutionGraph` by calling getTaskGraph. In your build file you can use `gradle.taskGraph` to access it.

The `TaskExecutionGraph` is populated only after all the projects in the build have been evaluated. It is empty before then. You can receive a notification when the graph is populated, using whenReady or addTaskExecutionGraphListener.

## Functions

addTaskExecutionGraphListener
Link copied to clipboard
abstract fun addTaskExecutionGraphListener(listener: TaskExecutionGraphListener)
Adds a listener to this graph, to be notified when this graph is ready.
addTaskExecutionListener
Link copied to clipboard
abstract fun addTaskExecutionListener(listener: TaskExecutionListener)
Adds a listener to this graph, to be notified as tasks are executed.
afterTask
Link copied to clipboard
abstract fun afterTask(closure: Closure)
Adds a closure to be called immediately after a task has executed.
abstract fun afterTask(action: Action<Task>)
Adds an action to be called immediately after a task has executed.
beforeTask
Link copied to clipboard
abstract fun beforeTask(closure: Closure)
Adds a closure to be called immediately before a task is executed.
abstract fun beforeTask(action: Action<Task>)
Adds an action to be called immediately before a task is executed.
getAllTasks
Link copied to clipboard
abstract fun getAllTasks(): List<Task>
Returns the tasks which are included in the execution plan.
getDependencies
Link copied to clipboard
abstract fun getDependencies(task: Task): Set<Task>
Returns the dependencies of a task which are part of the execution graph.
hasTask
Link copied to clipboard
abstract fun hasTask(path: String): Boolean
abstract fun hasTask(task: Task): Boolean
Determines whether the given task is included in the execution plan.
removeTaskExecutionGraphListener
Link copied to clipboard
abstract fun removeTaskExecutionGraphListener(listener: TaskExecutionGraphListener)
Remove a listener from this graph.
removeTaskExecutionListener
Link copied to clipboard
abstract fun removeTaskExecutionListener(listener: TaskExecutionListener)
Remove a listener from this graph.
whenReady
Link copied to clipboard
abstract fun whenReady(closure: Closure)
Adds a closure to be called when this graph has been populated.
abstract fun whenReady(action: Action<TaskExecutionGraph>)
Adds an action to be called when this graph has been populated.