# Interface BuildActionExecuter<T>

Type Parameters:
  `T` - The type of result produced by this executer.

All Superinterfaces:
  `ConfigurableLauncher<BuildActionExecuter<T>>, LongRunningOperation`

@Incubating public interface BuildActionExecuter<T> extends ConfigurableLauncher<BuildActionExecuter<T>>
Used to execute a `BuildAction` in the build process.

Since:
  1.8

## Method Summary

Modifier and Type
Method
Description
`BuildActionExecuter<T>`
`forTasks(Iterable<String> tasks)`
Specifies the tasks to execute before executing the BuildAction.
`BuildActionExecuter<T>`
`forTasks(String... tasks)`
Specifies the tasks to execute before executing the BuildAction.
`T`
`run()`
Runs the action, blocking until its result is available.
`void`
`run(ResultHandler<? super T> handler)`
Starts executing the action, passing the result to the given handler when complete.

### Methods inherited from interface ConfigurableLauncher

`addProgressListener, addProgressListener, addProgressListener, addProgressListener, setColorOutput, setEnvironmentVariables, setJavaHome, setJvmArguments, setJvmArguments, setStandardError, setStandardInput, setStandardOutput, withArguments, withArguments, withCancellationToken`

## Method Details

### forTasks

@Incubating BuildActionExecuter<T> forTasks(String... tasks)
Specifies the tasks to execute before executing the BuildAction. If not configured, null, or an empty array is passed, then no tasks will be executed.

Parameters:
  `tasks` - The paths of the tasks to be executed. Relative paths are evaluated relative to the project for which this launcher was created.
Returns:
  this
Since:
  3.5

### forTasks

@Incubating BuildActionExecuter<T> forTasks(Iterable<String> tasks)
Specifies the tasks to execute before executing the BuildAction. If not configured, null, or an empty array is passed, then no tasks will be executed.

Parameters:
  `tasks` - The paths of the tasks to be executed. Relative paths are evaluated relative to the project for which this launcher was created.
Returns:
  this
Since:
  3.5

### run

T run() throws GradleConnectionException, IllegalStateException
Runs the action, blocking until its result is available.

Throws:
  `UnsupportedVersionException` - When the target Gradle version does not support build action execution.
  `UnsupportedOperationConfigurationException` - When the target Gradle version does not support some requested configuration option.
  `UnsupportedBuildArgumentException` - When there is a problem with build arguments provided by `ConfigurableLauncher.withArguments(String...)`.
  `BuildActionFailureException` - When the build action fails with an exception.
  `BuildCancelledException` - When the operation was cancelled before it completed successfully.
  `BuildException` - On some failure executing the Gradle build.
  `GradleConnectionException` - On some other failure using the connection.
  `IllegalStateException` - When the connection has been closed or is closing.
Since:
  1.8

### run

void run(ResultHandler<? super T> handler) throws IllegalStateException
Starts executing the action, passing the result to the given handler when complete. This method returns immediately, and the result is later passed to the given handler's `ResultHandler.onComplete(Object)` method.

If the operation fails, the handler's `ResultHandler.onFailure(GradleConnectionException)` method is called with the appropriate exception. See `run()` for a description of the various exceptions that the operation may fail with.

Parameters:
  `handler` - The handler to supply the result to.
Throws:
  `IllegalStateException` - When the connection has been closed or is closing.
Since:
  1.8