如何为 gradle 自定义任务输入指定默认值

How do I specify default values for gradle custom task inputs

我有一个自定义 gradle 任务,看起来有点像这样:

task foo(type:FooTask) {
    in file('foo.in')
    out file('foo.out')
}

class FooTask extends DefaultTask {
    @InputFile
    File in

    @OutputFile
    File out

    @TaskAction
    def doTheFoo() {
         // Do stuff with in and write to out
    }
}

这很好,但是 99% 的时间 FooTask 的输出应该写入 "$buildDir/foo.out"。有人告诉我 gradle 非常重视使用约定来最小化脚本的大小;如何将其设置为默认值,以便我的任务不必定义它?

您可以简单地在实例变量或构造函数中设置它。

@InputFile
File in = project.file("${project.buildDir}/foo.out")