鑑於此protobuf的gradle這個配置:搖籃protobuf的自定義任務
:
當我們執行generateProto
任務(這是由protobuf的插件所產生的),我們會得到輸出以下正如您所看到的,自定義任務cleanProto
正在generateProto
之前執行。
如果我沒有定義這些任務之間的依賴關係,它爲什麼會執行?
鑑於此protobuf的gradle這個配置:搖籃protobuf的自定義任務
:
當我們執行generateProto
任務(這是由protobuf的插件所產生的),我們會得到輸出以下正如您所看到的,自定義任務cleanProto
正在generateProto
之前執行。
如果我沒有定義這些任務之間的依賴關係,它爲什麼會執行?
其實......根本沒有執行。 println
語句在配置階段執行,而不是在執行階段。爲了驗證它,改變cleanProto
到:
task cleanProto << {
println 'deleting gen'
delete 'gen'
}
現在,如果沒有扶養人是指它不會執行的。用<<
添加一個動作。在執行階段執行操作。
請看看this的答案。
P.S.下一次,而不是提供代碼的圖像,複製並粘貼它。您可以在Mac上使用cmd + k組合。
你使用哪個protobuf插件? – RaGe
com.google.protobuf:protobuf-gradle-plugin:0.7.0但它似乎是我定義錯誤的任務,當我將任務定義更改爲「任務(cleanProto)<< {」它按預期工作,但我不明白爲什麼, 有什麼不同? – vach