鉴于此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