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()
提供对象。
不要在您的子类中实现此方法。当通过 DependencyHandler.registerTransform(java.lang.Class, org.gradle.api.Action)
注册转换操作时,Gradle 提供实现。