2015-11-10 71 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