2015-02-05 100 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

相關問題