TransformAction

API Documentation:TransformAction

Interface for artifact transform actions.

A transform action implementation is an abstract class implementing the TransformAction.transform(org.gradle.api.artifacts.transform.TransformOutputs) method. A minimal implementation may look like this:

import org.gradle.api.artifacts.transform.TransformParameters;

public abstract class MyTransform implements TransformAction<TransformParameters.None> {
    @InputArtifact
    public abstract Provider<FileSystemLocation> getInputArtifact();

    @Override
    public void transform(TransformOutputs outputs) {
        File input = getInputArtifact().get().getAsFile();
        File output = outputs.file(input.getName() + ".transformed");
        // Do something to generate output from input
    }
}

Implementations of TransformAction are subject to the following constraints:

  • Do not implement TransformAction.getParameters() in your class, the method will be implemented by Gradle.
  • Implementations may only have a default constructor.

Implementations can receive parameters by using annotated abstract getter methods.

  • An abstract getter annotated with InputArtifact will receive the input artifact location, which is the file or directory that the transform should be applied to.
  • An abstract getter with InputArtifactDependencies will receive the dependencies of its input artifact.

Properties

PropertyDescription
parameters

The object provided by TransformSpec.getParameters() when registering the artifact transform.

Methods

MethodDescription
transform(outputs)

Executes the transform.

Script blocks

No script blocks

Property details

T parameters (read-only)

The object provided by TransformSpec.getParameters() when registering the artifact transform.

Do not implement this method in your subclass. Gradle provides the implementation when registering the transform action via DependencyHandler.registerTransform(java.lang.Class, org.gradle.api.Action).

Method details

void transform(TransformOutputs outputs)

Executes the transform.

This method must be implemented in the subclass.