API 文档 | TransformAction |
---|
用于工件转换操作的接口。
一个转换操作实现是一个抽象类,它实现了 TransformAction.transform(org.gradle.api.artifacts.transform.TransformOutputs)
方法。一个最小的实现可能如下所示:
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 } }
TransformAction 的实现受以下约束:
- 不要在您的类中实现
TransformAction.getParameters()
,该方法将由 Gradle 实现。 - 实现类只能有一个默认构造函数。
实现类可以通过使用带注解的抽象 getter 方法接收参数。
- 使用
InputArtifact
注解的抽象 getter 将接收 输入工件 的位置,即应应用转换的文件或目录。 - 使用
InputArtifactDependencies
的抽象 getter 将接收其输入工件的 依赖项。
属性 | 描述 |
parameters | 在注册工件转换时,由 |
方法 | 描述 |
transform(outputs) | 执行转换。 |
在注册工件转换时,由 TransformSpec.getParameters()
提供对象。
不要在您的子类中实现此方法。Gradle 在通过 DependencyHandler.registerTransform(java.lang.Class, org.gradle.api.Action)
注册转换操作时提供实现。