Interface TransformOutputs
-
public interface TransformOutputs
The outputs of the artifact transform.The registered output
File
s will appear in the transformed variant in the order they were registered.- Since:
- 5.3
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description java.io.File
dir(java.lang.Object path)
Registers an output directory.java.io.File
file(java.lang.Object path)
Registers an output file.
-
-
-
Method Detail
-
dir
java.io.File dir(java.lang.Object path)
Registers an output directory.For an absolute path, the location is registered as an output directory of the
TransformAction
. The path must to point to theInputArtifact
, or point inside the input artifact if it is a directory. Example: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) { outputs.dir(getInputArtifact().get().getAsFile()); outputs.dir(new File(getInputArtifact().get().getAsFile(), "sub-dir")); } }
For a relative path, Gradle creates an output directory into which the
TransformAction
must place its output files. Example:import org.gradle.api.artifacts.transform.TransformParameters; public abstract class MyTransform implements TransformAction<TransformParameters.None> { @Override public void transform(TransformOutputs outputs) { File myOutput = outputs.dir("my-output"); Files.write(myOutput.toPath().resolve("file.txt"), "Generated text"); } }
Note: it is an error if the registered directory does not exist when the
TransformAction.transform(TransformOutputs)
method finishes.- Parameters:
path
- path of the output directory- Returns:
- determined location of the output
-
file
java.io.File file(java.lang.Object path)
Registers an output file.For an absolute path, the location is registered as an output file of the
TransformAction
. The path is required to point to theInputArtifact
or be inside it if the input artifact is a directory. Example: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(); if (input.isFile()) { outputs.file(input); } else { outputs.file(new File(input, "file-in-input-artifact.txt")); } } }
For a relative path, a location for the output file is provided by Gradle, so that the
TransformAction
can produce its outputs at that location. The parent directory of the provided location is created automatically when calling the method. Example: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 myOutput = outputs.file("my-output.transformed"); Files.write(myOutput.toPath(), "Generated text"); } }
The registered file needs to exist when the
TransformAction.transform(TransformOutputs)
method finishes.- Parameters:
path
- path of the output file- Returns:
- determined location of the output
-
-