API 文档 | TransformAction |
---|
artifact 转换操作的接口。
转换操作实现是一个抽象类,它实现了 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 将接收 输入 artifact 位置,该位置是要应用转换的文件或目录。 - 带有
InputArtifactDependencies
的抽象 getter 将接收其输入 artifact 的依赖项。
属性 | 描述 |
parameters | 在注册 artifact 转换时,通过 |
方法 | 描述 |
transform(outputs) | 执行转换。 |
在注册 artifact 转换时,通过 TransformSpec.getParameters()
提供的对象。
不要在你的子类中实现此方法。Gradle 在通过 DependencyHandler.registerTransform(java.lang.Class, org.gradle.api.Action)
注册转换操作时提供实现。