2015-02-05 55 views
0

我有一个自定义的gradle这个任务看起来有点像这样的默认值:时间如何指定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在使用约定来减小脚本的大小方面很重要;我如何使这个默认值,以便我的任务不必定义它?

回答

2

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

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

这就是我最初的想法,但当时可以使用'project'属性吗? Task实例创建后不设置吗? – 2015-02-06 07:32:13

+0

该属性可用,因为它在超类的构造函数中设置。 – 2015-02-06 18:16:09

相关问题