Package org.gradle.api.tasks

## 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`, `Configurable<Task>`
  Direct Known Subclasses:
    `Exec`, `RunTestExecutable`

      @DisableCachingByDefault(because="Abstract super-class, not to be instantiated directly")
      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 org.gradle.api.Task

      `Task.Namer`

  - ### Field Summary

    - ### Fields inherited from interface org.gradle.api.Task

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

  - ### Constructor Summary

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

  - ### Method Summary

    All Methods Instance Methods Concrete Methods Deprecated Methods
    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<CommandLineArgumentProvider>` | `getArgumentProviders()` | Argument providers for the application.
    `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()` | Deprecated. Use `getExecutionResult()` instead.
    `String` | `getExecutable()` | Returns the name of the executable to use.
    `Provider<ExecResult>` | `getExecutionResult()` | Returns the result for the command run by this task.
    `protected ObjectFactory` | `getObjectFactory()` |
    `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 org.gradle.api.DefaultTask

      `compareTo, configure, dependsOn, doFirst, doFirst, doFirst, doLast, doLast, doLast, finalizedBy, getActions, getAnt, getDependsOn, getDescription, getDestroyables, getDidWork, getEnabled, getExtensions, getFinalizedBy, getGroup, getInputs, getLocalState, getLogger, getLogging, getMustRunAfter, getName, getOutputs, getPath, getProject, getShouldRunAfter, getState, getTaskDependencies, getTemporaryDir, getTimeout, hasProperty, mustRunAfter, onlyIf, onlyIf, property, setActions, setDependsOn, setDescription, setDidWork, setEnabled, setFinalizedBy, setGroup, setMustRunAfter, setOnlyIf, setOnlyIf, setProperty, setShouldRunAfter, shouldRunAfter, usesService`

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

      `appendParallelSafeAction, doNotTrackState, getAsDynamicObject, getConvention, getIdentityPath, getImpliesSubProjects, getLifecycleDependencies, getOnlyIf, getReasonNotToTrackState, getReasonTaskIsIncompatibleWithConfigurationCache, getRequiredServices, getServices, getSharedResources, getStandardOutputCapture, getTaskActions, getTaskIdentity, getTemporaryDirFactory, hasTaskActions, injectIntoNewInstance, isCompatibleWithConfigurationCache, isEnabled, isHasCustomActions, notCompatibleWithConfigurationCache, prependParallelSafeAction, setImpliesSubProjects`

    - ### Methods inherited from class java.lang.Object

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

    - ### Methods inherited from interface org.gradle.api.Task

      `doNotTrackState, getConvention, notCompatibleWithConfigurationCache`

- - ### Constructor Detail

    - #### AbstractExecTask

          public AbstractExecTask​(Class<T> taskType)

  - ### Method Detail

    - #### getObjectFactory

          @Inject
          protected ObjectFactory getObjectFactory()

    - #### 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​(@Nullable
                           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

          @Nullable
          @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`

    - #### getArgumentProviders

          public List<CommandLineArgumentProvider> getArgumentProviders()

      Argument providers for the application.
      Specified by:
        `getArgumentProviders` 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

          @Nullable
          @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​(@Nullable
                                    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

          @Deprecated
          @ReplacedBy("executionResult")
          @Nullable
          public ExecResult getExecResult()

      Deprecated.
      Use `getExecutionResult()` instead. This method will be removed in Gradle 8.0.
      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.
      See Also:
        `for the preferred way of accessing this property.`

    - #### getExecutionResult

          @Internal
          public Provider<ExecResult> getExecutionResult()

      Returns the result for the command run by this task. The provider has no value if this task has not been executed yet.
      Returns:
        A provider of the result.
      Since:
        6.1