Collection<Task>
, org.gradle.util.Configurable<NamedDomainObjectContainer<Task>>
, DomainObjectCollection<Task>
, Iterable<Task>
, NamedDomainObjectCollection<Task>
, NamedDomainObjectContainer<Task>
, NamedDomainObjectSet<Task>
, PolymorphicDomainObjectContainer<Task>
, Set<Task>
, TaskCollection<Task>
public interface TaskContainer extends TaskCollection<Task>, PolymorphicDomainObjectContainer<Task>
A TaskContainer
is responsible for managing a set of Task
instances.
You can obtain a TaskContainer
instance by calling Project.getTasks()
, or using the
tasks
property in your build script.
Modifier and Type | Method | Description |
---|---|---|
Task |
create(String name) |
Creates a
Task with the given name and adds it to this container. |
Task |
create(String name,
Closure configureClosure) |
Creates a
Task with the given name adds it to this container. |
<T extends Task> |
create(String name,
Class<T> type) |
Creates a
Task with the given name and type, and adds it to this container. |
<T extends Task> |
create(String name,
Class<T> type,
Object... constructorArgs) |
Creates a
Task with the given name and type, passing the given arguments to the @Inject -annotated constructor,
and adds it to this container. |
<T extends Task> |
create(String name,
Class<T> type,
Action<? super T> configuration) |
Creates a
Task with the given name and type, configures it with the given action, and adds it to this container. |
Task |
create(Map<String,?> options) |
Creates a
Task and adds it to this container. |
Task |
create(Map<String,?> options,
Closure configureClosure) |
Creates a
Task adds it to this container. |
Task |
findByPath(String path) |
Locates a task by path.
|
Task |
getByPath(String path) |
Locates a task by path.
|
TaskProvider<Task> |
register(String name) |
Defines a new task, which will be created when it is required.
|
<T extends Task> |
register(String name,
Class<T> type) |
Defines a new task, which will be created when it is required.
|
<T extends Task> |
register(String name,
Class<T> type,
Object... constructorArgs) |
Defines a new task, which will be created when it is required passing the given arguments to the
@Inject -annotated constructor. |
<T extends Task> |
register(String name,
Class<T> type,
Action<? super T> configurationAction) |
Defines a new task, which will be created and configured when it is required.
|
TaskProvider<Task> |
register(String name,
Action<? super Task> configurationAction) |
Defines a new task, which will be created and configured when it is required.
|
Task |
replace(String name) |
Creates a
Task with the given name and adds it to this container, replacing any existing task with the
same name. |
<T extends Task> |
replace(String name,
Class<T> type) |
Creates a
Task with the given name and type, and adds it to this container, replacing any existing
task of the same name. |
parallelStream, removeIf, stream, toArray
addAllLater, addLater, all, all, configureEach, whenObjectAdded, whenObjectAdded, whenObjectRemoved, whenObjectRemoved, withType, withType
add, addAll, addRule, addRule, addRule, findByName, getAsMap, getByName, getCollectionSchema, getNamer, getNames, getRules
configure, create, maybeCreate
findAll
containerWithType, maybeCreate
add, addAll, clear, contains, containsAll, equals, hashCode, isEmpty, iterator, remove, removeAll, retainAll, size, spliterator, toArray, toArray
getAt, getByName, getByName, matching, matching, named, named, named, named, whenTaskAdded, whenTaskAdded, withType
@Nullable Task findByPath(String path)
Locates a task by path. You can supply a task name, a relative path, or an absolute path. Relative paths are interpreted relative to the project for this container. This method returns null if no task with the given path exists.
path
- the path of the task to be returnedTask getByPath(String path) throws UnknownTaskException
Locates a task by path. You can supply a task name, a relative path, or an absolute path. Relative paths are interpreted relative to the project for this container. This method throws an exception if no task with the given path exists.
path
- the path of the task to be returnedUnknownTaskException
- If no task with the given path exists.Task create(Map<String,?> options) throws InvalidUserDataException
Creates a Task
and adds it to this container. A map of creation options can be passed to this method
to control how the task is created. The following options are available:
Option | Description | Default Value |
---|---|---|
"name" | The name of the task to create. | None. Must be specified. |
"type" | The class of the task to create. | DefaultTask |
"action" | The closure or Action to
execute when the task executes. See Task.doFirst(Action) . | null |
"overwrite" | Replace an existing task? | false |
"dependsOn" | The dependencies of the task. See here for more details. | [] |
"group" | The group of the task. | null
|
"description" | The description of the task. |
null |
"constructorArgs" | The arguments to pass to the task class constructor. |
null |
After the task is added, it is made available as a property of the project, so that you can reference the task by name in your build file. See here for more details.
If a task with the given name already exists in this container and the "overwrite"
option is not set to true, an exception is thrown.
options
- The task creation options.InvalidUserDataException
- If a task with the given name already exists in this project.NullPointerException
- If any of the values in "constructorArgs"
is null.Task create(Map<String,?> options, Closure configureClosure) throws InvalidUserDataException
Creates a Task
adds it to this container. A map of creation options can be passed to this method to
control how the task is created. See create(java.util.Map)
for the list of options available. The given
closure is used to configure the task before it is returned by this method.
After the task is added, it is made available as a property of the project, so that you can reference the task by name in your build file. See here for more details.
options
- The task creation options.configureClosure
- The closure to use to configure the task.InvalidUserDataException
- If a task with the given name already exists in this project.Task create(String name, Closure configureClosure) throws InvalidUserDataException
Creates a Task
with the given name adds it to this container. The given closure is used to configure
the task before it is returned by this method.
After the task is added, it is made available as a property of the project, so that you can reference the task by name in your build file. See here for more details.
create
in interface NamedDomainObjectContainer<Task>
name
- The name of the task to be createdconfigureClosure
- The closure to use to configure the task.InvalidUserDataException
- If a task with the given name already exists in this project.Task create(String name) throws InvalidUserDataException
Creates a Task
with the given name and adds it to this container.
After the task is added, it is made available as a property of the project, so that you can reference the task by name in your build file. See here for more details.
create
in interface NamedDomainObjectContainer<Task>
name
- The name of the task to be createdInvalidUserDataException
- If a task with the given name already exists in this project.<T extends Task> T create(String name, Class<T> type) throws InvalidUserDataException
Creates a Task
with the given name and type, and adds it to this container.
After the task is added, it is made available as a property of the project, so that you can reference the task by name in your build file. See here for more details.
create
in interface PolymorphicDomainObjectContainer<Task>
T
- the type of the domain object to be createdname
- The name of the task to be created.type
- The type of task to create.InvalidUserDataException
- If a task with the given name already exists in this project.@Incubating <T extends Task> T create(String name, Class<T> type, Object... constructorArgs) throws InvalidUserDataException
Creates a Task
with the given name and type, passing the given arguments to the @Inject
-annotated constructor,
and adds it to this container. All values passed to the task constructor must be non-null; otherwise a
NullPointerException
will be thrown
After the task is added, it is made available as a property of the project, so that you can reference the task by name in your build file. See here for more details.
name
- The name of the task to be created.type
- The type of task to create.constructorArgs
- The arguments to pass to the task constructorInvalidUserDataException
- If a task with the given name already exists in this project.NullPointerException
- If any of the values in constructorArgs
is null.<T extends Task> T create(String name, Class<T> type, Action<? super T> configuration) throws InvalidUserDataException
Creates a Task
with the given name and type, configures it with the given action, and adds it to this container.
After the task is added, it is made available as a property of the project, so that you can reference the task by name in your build file. See here for more details.
create
in interface PolymorphicDomainObjectContainer<Task>
T
- the type of the domain object to be createdname
- The name of the task to be created.type
- The type of task to create.configuration
- The action to configure the task with.InvalidUserDataException
- If a task with the given name already exists in this project.TaskProvider<Task> register(String name, Action<? super Task> configurationAction) throws InvalidUserDataException
TaskCollection.getByName(java.lang.String)
, when the task is added to the task graph for execution or when Provider.get()
is called on the return value of this method.
It is generally more efficient to use this method instead of NamedDomainObjectContainer.create(java.lang.String, org.gradle.api.Action)
or create(java.lang.String)
, as those methods will eagerly create and configure the task, regardless of whether that task is required for the current build or not. This method, on the other hand, will defer creation and configuration until required.
register
in interface NamedDomainObjectContainer<Task>
name
- The name of the task.configurationAction
- The action to run to configure the task. This action runs when the task is required.Provider
that whose value will be the task, when queried.InvalidUserDataException
- If a task with the given name already exists in this project.<T extends Task> TaskProvider<T> register(String name, Class<T> type, Action<? super T> configurationAction) throws InvalidUserDataException
TaskCollection.getByName(java.lang.String)
, when the task is added to the task graph for execution or when Provider.get()
is called on the return value of this method.
It is generally more efficient to use this method instead of create(java.lang.String, java.lang.Class, org.gradle.api.Action)
or create(java.lang.String, java.lang.Class)
, as those methods will eagerly create and configure the task, regardless of whether that task is required for the current build or not. This method, on the other hand, will defer creation and configuration until required.
register
in interface PolymorphicDomainObjectContainer<Task>
T
- The task typename
- The name of the task.type
- The task type.configurationAction
- The action to run to configure the task. This action runs when the task is required.Provider
that whose value will be the task, when queried.InvalidUserDataException
- If a task with the given name already exists in this project.<T extends Task> TaskProvider<T> register(String name, Class<T> type) throws InvalidUserDataException
TaskCollection.getByName(java.lang.String)
, when the task is added to the task graph for execution or when Provider.get()
is called on the return value of this method.
It is generally more efficient to use this method instead of create(java.lang.String, java.lang.Class, org.gradle.api.Action)
or create(java.lang.String, java.lang.Class)
, as those methods will eagerly create and configure the task, regardless of whether that task is required for the current build or not. This method, on the other hand, will defer creation until required.
register
in interface PolymorphicDomainObjectContainer<Task>
T
- The task typename
- The name of the task.type
- The task type.Provider
that whose value will be the task, when queried.InvalidUserDataException
- If a task with the given name already exists in this project.<T extends Task> TaskProvider<T> register(String name, Class<T> type, Object... constructorArgs) throws InvalidUserDataException
@Inject
-annotated constructor. A task is 'required' when the task is located using query methods such as TaskCollection.getByName(java.lang.String)
, when the task is added to the task graph for execution or when Provider.get()
is called on the return value of this method. All values passed to the task constructor must be non-null; otherwise a NullPointerException
will be thrown
It is generally more efficient to use this method instead of create(java.lang.String, java.lang.Class, org.gradle.api.Action)
or create(java.lang.String, java.lang.Class)
, as those methods will eagerly create and configure the task, regardless of whether that task is required for the current build or not. This method, on the other hand, will defer creation until required.
T
- The task typename
- The name of the task.type
- The task type.constructorArgs
- The arguments to pass to the task constructorProvider
that whose value will be the task, when queried.NullPointerException
- If any of the values in constructorArgs
is null.InvalidUserDataException
TaskProvider<Task> register(String name) throws InvalidUserDataException
TaskCollection.getByName(java.lang.String)
, when the task is added to the task graph for execution or when Provider.get()
is called on the return value of this method.
It is generally more efficient to use this method instead of create(java.lang.String)
, as that method will eagerly create the task, regardless of whether that task is required for the current build or not. This method, on the other hand, will defer creation until required.
register
in interface NamedDomainObjectContainer<Task>
name
- The name of the task.Provider
that whose value will be the task, when queried.InvalidUserDataException
- If a task with the given name already exists in this project.Task replace(String name)
Creates a Task
with the given name and adds it to this container, replacing any existing task with the
same name.
After the task is added, it is made available as a property of the project, so that you can reference the task by name in your build file. See here for more details.
name
- The name of the task to be created<T extends Task> T replace(String name, Class<T> type)
Creates a Task
with the given name and type, and adds it to this container, replacing any existing
task of the same name.
After the task is added, it is made available as a property of the project, so that you can reference the task by name in your build file. See here for more details.
name
- The name of the task to be created.type
- The type of task to create.