2015-11-10 157 views
1

鑑於此protobuf的gradle這個配置:搖籃protobuf的自定義任務

output

protobuf configuration

當我們執行generateProto任務(這是由protobuf的插件所產生的),我們會得到輸出以下正如您所看到的,自定義任務cleanProto正在generateProto之前執行。

如果我沒有定義這些任務之間的依賴關係,它爲什麼會執行?

+0

你使用哪個protobuf插件? – RaGe

+0

com.google.protobuf:protobuf-gradle-plugin:0.7.0但它似乎是我定義錯誤的任務,當我將任務定義更改爲「任務(cleanProto)<< {」它按預期工作,但我不明白爲什麼, 有什麼不同? – vach

回答

2

其實......根本沒有執行。 println語句在配置階段執行,而不是在執行階段。爲了驗證它,改變cleanProto到:

task cleanProto << { 
    println 'deleting gen' 
    delete 'gen' 
} 

現在,如果沒有扶養人是指它不會執行的。用<<添加一個動作。在執行階段執行操作。

請看看this的答案。

P.S.下一次,而不是提供代碼的圖像,複製並粘貼它。您可以在Mac上使用cmd + k組合。

+0

感謝您快速回答 – vach

+0

@vach,當然。如果您覺得有用,請接受。 – Opal

+1

哦,當然,我正在接受它,但它有5個限制,然後我忘了:D – vach