Package: org.gradle.api.tasks

## [Java] Interface TaskOutputs

- A `TaskOutputs` represents the outputs of a task.

  You can obtain a `TaskOutputs` instance using Task.getOutputs.

- - ### Methods Summary

    Methods
    Type | Name and description
    --- | ---
    `TaskOutputs` | `dir(Object path)` Registers an output directory for this task.
    `TaskOutputs` | `file(Object path)` Registers some output file for this task.
    `TaskOutputs` | `files(Object... paths)` Registers some output files for this task.
    `FileCollection` | `getFiles()` Returns the output files of this task.
    `boolean` | `getHasOutput()` Returns true if this task has declared any outputs.
    `void` | `upToDateWhen(groovy.lang.Closure upToDateClosure)`
    `void` | `upToDateWhen(Spec<? super Task> upToDateSpec)`

- - ### Method Detail

    - #### public TaskOutputs dir(Object path)

      Registers an output directory for this task.

      Parameters:
        `path` - The output directory. The given path is evaluated as per Project.file.
      Returns:
        this

    - #### public TaskOutputs file(Object path)

      Registers some output file for this task.

      Parameters:
        `path` - The output file. The given path is evaluated as per Project.file.
      Returns:
        this

    - #### public TaskOutputs files(Object... paths)

      Registers some output files for this task.

      Parameters:
        `paths` - The output files. The given paths are evaluated as per Project.files.
      Returns:
        this

    - #### public FileCollection getFiles()

      Returns the output files of this task.

      Returns:
        The output files. Returns an empty collection if this task has no output files.

    - #### public boolean getHasOutput()

      Returns true if this task has declared any outputs. Note that a task may be able to produce output files and still have an empty set of output files.

      Returns:
        true if this task has declared any outputs, otherwise false.

    - #### public void upToDateWhen(groovy.lang.Closure upToDateClosure)

      Adds a predicate to determine whether the outputs of this task are up-to-date. The given closure is executed at task execution time. The closure is passed the task as a parameter. If the closure returns false, the task outputs are considered out-of-date and the task will be executed.

      You can add multiple such predicates. The task outputs are considered out-of-date when any predicate returns false.

      Parameters:
        `upToDateClosure` - The closure to use to determine whether the task outputs are up-to-date.

    - #### public void upToDateWhen(Spec<? super Task> upToDateSpec)

      Adds a predicate to determine whether the outputs of this task are up-to-date. The given spec is evaluated at task execution time. If the spec returns false, the task outputs are considered out-of-date and the task will be executed.

      You can add multiple such predicates. The task outputs are considered out-of-date when any predicate returns false.

      Parameters:
        `upToDateSpec` - The spec to use to determine whether the task outputs are up-to-date.