# Class AbstractExecTask<T extends AbstractExecTask>

java.lang.Object
org.gradle.api.internal.AbstractTask
org.gradle.api.DefaultTask
org.gradle.api.internal.ConventionTask
org.gradle.api.tasks.AbstractExecTask<T>

Type Parameters:
  `T` - The concrete type of the class.

All Implemented Interfaces:
  `Comparable<Task>, org.gradle.api.internal.DynamicObjectAware, org.gradle.api.internal.IConventionAware, org.gradle.api.internal.TaskInternal, ExtensionAware, Task, BaseExecSpec, ExecSpec, ProcessForkOptions, org.gradle.util.Configurable<Task>`

Direct Known Subclasses:
  `Exec, RunTestExecutable`

public abstract class AbstractExecTask<T extends AbstractExecTask> extends org.gradle.api.internal.ConventionTask implements ExecSpec
`AbstractExecTask` is the base class for all exec tasks.

## Nested Class Summary

### Nested classes/interfaces inherited from interface Task

`Task.Namer`

## Field Summary

### Fields inherited from interface Task

`TASK_ACTION, TASK_DEPENDS_ON, TASK_DESCRIPTION, TASK_GROUP, TASK_NAME, TASK_OVERWRITE, TASK_TYPE`

## Constructor Summary

Constructors
Constructor
Description
`AbstractExecTask(Class<T> taskType)`

## Method Summary

Modifier and Type
Method
Description
`T`
`args(Iterable<?> args)`
Adds arguments for the command to be executed.
`T`
`args(Object... args)`
Adds arguments for the command to be executed.
`T`
`commandLine(Iterable<?> args)`
Sets the full command line, including the executable to be executed plus its arguments.
`T`
`commandLine(Object... arguments)`
Sets the full command line, including the executable to be executed plus its arguments.
`T`
`copyTo(ProcessForkOptions target)`
Copies these options to the given target options.
`T`
`environment(String name, Object value)`
Adds an environment variable to the environment for this process.
`T`
`environment(Map<String,?> environmentVariables)`
Adds some environment variables to the environment for this process.
`protected void`
`exec()`
`T`
`executable(Object executable)`
Sets the name of the executable to use.
`List<String>`
`getArgs()`
Returns the arguments for the command to be executed.
`List<String>`
`getCommandLine()`
Returns the full command line, including the executable plus its arguments.
`Map<String,Object>`
`getEnvironment()`
The environment variables to use for the process.
`OutputStream`
`getErrorOutput()`
Returns the output stream to consume standard error from the process executing the command.
`protected org.gradle.process.internal.ExecActionFactory`
`getExecActionFactory()`
`ExecResult`
`getExecResult()`
Returns the result for the command run by this task.
`String`
`getExecutable()`
Returns the name of the executable to use.
`InputStream`
`getStandardInput()`
Returns the standard input stream for the process executing the command.
`OutputStream`
`getStandardOutput()`
Returns the output stream to consume standard output from the process executing the command.
`File`
`getWorkingDir()`
Returns the working directory for the process.
`boolean`
`isIgnoreExitValue()`
Tells whether a non-zero exit value is ignored, or an exception thrown.
`T`
`setArgs(Iterable<?> arguments)`
Sets the arguments for the command to be executed.
`T`
`setArgs(List<String> arguments)`
Sets the arguments for the command to be executed.
`void`
`setCommandLine(Iterable<?> args)`
Sets the full command line, including the executable to be executed plus its arguments.
`void`
`setCommandLine(Object... args)`
Sets the full command line, including the executable to be executed plus its arguments.
`void`
`setCommandLine(List<String> args)`
Sets the full command line, including the executable to be executed plus its arguments.
`void`
`setEnvironment(Map<String,?> environmentVariables)`
Sets the environment variable to use for the process.
`T`
`setErrorOutput(OutputStream outputStream)`
Sets the output stream to consume standard error from the process executing the command.
`void`
`setExecutable(Object executable)`
Sets the name of the executable to use.
`void`
`setExecutable(String executable)`
Sets the name of the executable to use.
`T`
`setIgnoreExitValue(boolean ignoreExitValue)`
Sets whether a non-zero exit value is ignored, or an exception thrown.
`T`
`setStandardInput(InputStream inputStream)`
Sets the standard input stream for the process executing the command.
`T`
`setStandardOutput(OutputStream outputStream)`
Sets the output stream to consume standard output from the process executing the command.
`void`
`setWorkingDir(File dir)`
Sets the working directory for the process.
`void`
`setWorkingDir(Object dir)`
Sets the working directory for the process.
`T`
`workingDir(Object dir)`
Sets the working directory for the process.

### Methods inherited from class org.gradle.api.internal.ConventionTask

`conventionMapping, conventionMapping, getConventionMapping`

### Methods inherited from class DefaultTask

`newInputDirectory, newInputFile, newOutputDirectory, newOutputFile`

### Methods inherited from class org.gradle.api.internal.AbstractTask

`addValidator, appendParallelSafeAction, compareTo, configure, deleteAllActions, dependsOn, dependsOnTaskDidWork, doFirst, doFirst, doFirst, doLast, doLast, doLast, execute, finalizedBy, getActions, getAnt, getAsDynamicObject, getConvention, getDependsOn, getDescription, getDestroyables, getDidWork, getEnabled, getExecuter, getExtensions, getFinalizedBy, getGroup, getIdentityPath, getImpliesSubProjects, getInputs, getLocalState, getLogger, getLogging, getMustRunAfter, getName, getOnlyIf, getOutputs, getPath, getProject, getServices, getShouldRunAfter, getStandardOutputCapture, getState, getTaskActions, getTaskDependencies, getTemporaryDir, getTemporaryDirFactory, getValidators, hasProperty, injectIntoNewInstance, isEnabled, isHasCustomActions, leftShift, mustRunAfter, onlyIf, onlyIf, prependParallelSafeAction, property, setActions, setDependsOn, setDescription, setDidWork, setEnabled, setExecuter, setFinalizedBy, setGroup, setImpliesSubProjects, setMustRunAfter, setOnlyIf, setOnlyIf, setProperty, setShouldRunAfter, shouldRunAfter, toString`

### Methods inherited from class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Constructor Details

### AbstractExecTask

public AbstractExecTask(Class<T> taskType)

## Method Details

### getExecActionFactory

@Inject protected org.gradle.process.internal.ExecActionFactory getExecActionFactory()

### exec

protected void exec()

### commandLine

public T commandLine(Object... arguments)
Sets the full command line, including the executable to be executed plus its arguments.

Specified by:
  `commandLine` in interface `ExecSpec`
Parameters:
  `arguments` - the command plus the args to be executed
Returns:
  this

### commandLine

public T commandLine(Iterable<?> args)
Sets the full command line, including the executable to be executed plus its arguments.

Specified by:
  `commandLine` in interface `ExecSpec`
Parameters:
  `args` - the command plus the args to be executed
Returns:
  this

### args

public T args(Object... args)
Adds arguments for the command to be executed.

Specified by:
  `args` in interface `ExecSpec`
Parameters:
  `args` - args for the command
Returns:
  this

### args

public T args(Iterable<?> args)
Adds arguments for the command to be executed.

Specified by:
  `args` in interface `ExecSpec`
Parameters:
  `args` - args for the command
Returns:
  this

### setArgs

public T setArgs(List<String> arguments)
Sets the arguments for the command to be executed.

Specified by:
  `setArgs` in interface `ExecSpec`
Parameters:
  `arguments` - args for the command
Returns:
  this

### setArgs

public T setArgs(Iterable<?> arguments)
Sets the arguments for the command to be executed.

Specified by:
  `setArgs` in interface `ExecSpec`
Parameters:
  `arguments` - args for the command
Returns:
  this

### getArgs

@Optional @Input public List<String> getArgs()
Returns the arguments for the command to be executed. Defaults to an empty list.

Specified by:
  `getArgs` in interface `ExecSpec`

### getCommandLine

@Internal public List<String> getCommandLine()
Returns the full command line, including the executable plus its arguments.

Specified by:
  `getCommandLine` in interface `BaseExecSpec`
Returns:
  The full command line, including the executable plus its arguments

### setCommandLine

public void setCommandLine(List<String> args)
Sets the full command line, including the executable to be executed plus its arguments.

Specified by:
  `setCommandLine` in interface `ExecSpec`
Parameters:
  `args` - the command plus the args to be executed

### setCommandLine

public void setCommandLine(Iterable<?> args)
Sets the full command line, including the executable to be executed plus its arguments.

Specified by:
  `setCommandLine` in interface `ExecSpec`
Parameters:
  `args` - the command plus the args to be executed

### setCommandLine

public void setCommandLine(Object... args)
Sets the full command line, including the executable to be executed plus its arguments.

Specified by:
  `setCommandLine` in interface `ExecSpec`
Parameters:
  `args` - the command plus the args to be executed

### getExecutable

@Optional @Input public String getExecutable()
Returns the name of the executable to use.

Specified by:
  `getExecutable` in interface `ProcessForkOptions`
Returns:
  The executable.

### setExecutable

public void setExecutable(String executable)
Sets the name of the executable to use.

Specified by:
  `setExecutable` in interface `ProcessForkOptions`
Parameters:
  `executable` - The executable. Must not be null.

### setExecutable

public void setExecutable(Object executable)
Sets the name of the executable to use.

Specified by:
  `setExecutable` in interface `ProcessForkOptions`
Parameters:
  `executable` - The executable. Must not be null.

### executable

public T executable(Object executable)
Sets the name of the executable to use.

Specified by:
  `executable` in interface `ProcessForkOptions`
Parameters:
  `executable` - The executable. Must not be null.
Returns:
  this

### getWorkingDir

@Internal public File getWorkingDir()
Returns the working directory for the process. Defaults to the project directory.

Specified by:
  `getWorkingDir` in interface `ProcessForkOptions`
Returns:
  The working directory. Never returns null.

### setWorkingDir

public void setWorkingDir(File dir)
Sets the working directory for the process.

Specified by:
  `setWorkingDir` in interface `ProcessForkOptions`
Parameters:
  `dir` - The working directory. Must not be null.

### setWorkingDir

public void setWorkingDir(Object dir)
Sets the working directory for the process. The supplied argument is evaluated as per `Project.file(Object)`.

Specified by:
  `setWorkingDir` in interface `ProcessForkOptions`
Parameters:
  `dir` - The working directory. Must not be null.

### workingDir

public T workingDir(Object dir)
Sets the working directory for the process. The supplied argument is evaluated as per `Project.file(Object)`.

Specified by:
  `workingDir` in interface `ProcessForkOptions`
Parameters:
  `dir` - The working directory. Must not be null.
Returns:
  this

### getEnvironment

@Internal public Map<String,Object> getEnvironment()
The environment variables to use for the process. Defaults to the environment of this process.

Specified by:
  `getEnvironment` in interface `ProcessForkOptions`
Returns:
  The environment. Returns an empty map when there are no environment variables.

### setEnvironment

public void setEnvironment(Map<String,?> environmentVariables)
Sets the environment variable to use for the process.

Specified by:
  `setEnvironment` in interface `ProcessForkOptions`
Parameters:
  `environmentVariables` - The environment variables. Must not be null.

### environment

public T environment(String name, Object value)
Adds an environment variable to the environment for this process.

Specified by:
  `environment` in interface `ProcessForkOptions`
Parameters:
  `name` - The name of the variable.
  `value` - The value for the variable. Must not be null.
Returns:
  this

### environment

public T environment(Map<String,?> environmentVariables)
Adds some environment variables to the environment for this process.

Specified by:
  `environment` in interface `ProcessForkOptions`
Parameters:
  `environmentVariables` - The environment variables. Must not be null.
Returns:
  this

### copyTo

public T copyTo(ProcessForkOptions target)
Copies these options to the given target options.

Specified by:
  `copyTo` in interface `ProcessForkOptions`
Parameters:
  `target` - The target options
Returns:
  this

### setStandardInput

public T setStandardInput(InputStream inputStream)
Sets the standard input stream for the process executing the command. The stream is closed after the process completes.

Specified by:
  `setStandardInput` in interface `BaseExecSpec`
Parameters:
  `inputStream` - The standard input stream for the process. Must not be null.
Returns:
  this

### getStandardInput

@Internal public InputStream getStandardInput()
Returns the standard input stream for the process executing the command. The stream is closed after the process completes. Defaults to an empty stream.

Specified by:
  `getStandardInput` in interface `BaseExecSpec`
Returns:
  The standard input stream.

### setStandardOutput

public T setStandardOutput(OutputStream outputStream)
Sets the output stream to consume standard output from the process executing the command. The stream is closed after the process completes.

Specified by:
  `setStandardOutput` in interface `BaseExecSpec`
Parameters:
  `outputStream` - The standard output stream for the process. Must not be null.
Returns:
  this

### getStandardOutput

@Internal public OutputStream getStandardOutput()
Returns the output stream to consume standard output from the process executing the command. Defaults to `System.out`.

Specified by:
  `getStandardOutput` in interface `BaseExecSpec`
Returns:
  The output stream

### setErrorOutput

public T setErrorOutput(OutputStream outputStream)
Sets the output stream to consume standard error from the process executing the command. The stream is closed after the process completes.

Specified by:
  `setErrorOutput` in interface `BaseExecSpec`
Parameters:
  `outputStream` - The standard output error stream for the process. Must not be null.
Returns:
  this

### getErrorOutput

@Internal public OutputStream getErrorOutput()
Returns the output stream to consume standard error from the process executing the command. Default to `System.err`.

Specified by:
  `getErrorOutput` in interface `BaseExecSpec`
Returns:
  The error output stream.

### setIgnoreExitValue

public T setIgnoreExitValue(boolean ignoreExitValue)
Sets whether a non-zero exit value is ignored, or an exception thrown.

Specified by:
  `setIgnoreExitValue` in interface `BaseExecSpec`
Parameters:
  `ignoreExitValue` - whether a non-zero exit value is ignored, or an exception thrown
Returns:
  this

### isIgnoreExitValue

@Input public boolean isIgnoreExitValue()
Tells whether a non-zero exit value is ignored, or an exception thrown. Defaults to `false`.

Specified by:
  `isIgnoreExitValue` in interface `BaseExecSpec`
Returns:
  whether a non-zero exit value is ignored, or an exception thrown

### getExecResult

@Internal public ExecResult getExecResult()
Returns the result for the command run by this task. Returns `null` if this task has not been executed yet.

Returns:
  The result. Returns `null` if this task has not been executed yet.