Groovy Documentation

org.gradle.api.tasks.incremental
[Java] Interface IncrementalTaskInputs


@Incubating
@NonExtensible
public interface IncrementalTaskInputs

Provides access to any input files that need to be processed by an incremental task.

An incremental task action is one that accepts a single IncrementalTaskInputs parameter. The task can then provide an action to execute for all input files that are out of date with respect to the previous execution of the task, and a separate action for all input files that have been removed since the previous execution.

 class IncrementalReverseTask extends DefaultTask {
InputDirectory:
def File inputDir
OutputDirectory:
def File outputDir
TaskAction:
void execute(IncrementalTaskInputs inputs) { inputs.outOfDate { change -> def targetFile = project.file("$outputDir/${change.file.name}") targetFile.text = change.file.text.reverse() } inputs.removed { change -> def targetFile = project.file("$outputDir/${change.file.name}") if (targetFile.exists()) { targetFile.delete() } } } }

In the case where Gradle is unable to determine which input files need to be reprocessed, then all of the input files will be reported as outOfDate. Cases where this occurs include:

Note that this is a stateful API:


Method Summary
boolean isIncremental()

Indicates if it was possible for Gradle to determine which exactly which input files were out of date compared to a previous execution.

void outOfDate(Action outOfDateAction)

Executes the action for all of the input files that are out-of-date since the previous task execution.

void removed(Action removedAction)

Executes the action for all of the input files that were removed since the previous task execution.

 

Method Detail

isIncremental

public boolean isIncremental()
Indicates if it was possible for Gradle to determine which exactly which input files were out of date compared to a previous execution. This is not possible in the case of no previous execution, changed Input Properties, Output Files, etc.

When true:

When false:


outOfDate

public void outOfDate(Action outOfDateAction)
Executes the action for all of the input files that are out-of-date since the previous task execution. The action may also be supplied as a Closure.

This method may only be called a single time for a single IncrementalTaskInputs instance.

throws:
IllegalStateException on second and subsequent invocations.


removed

public void removed(Action removedAction)
Executes the action for all of the input files that were removed since the previous task execution. The action may also be supplied as a Closure.

This method may only be called a single time for a single IncrementalTaskInputs instance.

This method may only be called after outOfDate has been called.

throws:
IllegalStateException if invoked prior to outOfDate, or if invoked more than once.


 

Gradle API 1.8