Gradle protobuf 自定义任务

Gradle protobuf custom task

鉴于此 protobuf gradle 配置:

当我们执行 generateProto 任务(由 protobuf 插件生成)时,我们将得到以下输出:

如您所见,自定义任务 cleanProtogenerateProto 之前执行。

如果我没有定义这些任务之间的依赖关系,为什么它会执行?

实际上..它根本没有执行。 println语句在配置阶段执行,而不是在执行阶段执行。要验证它,请将 cleanProto 更改为:

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

现在,如果没有定义依赖关系,它根本不会执行。使用 << 添加一个动作。在 执行 阶段的操作是 运行。

请同时查看 this 答案。

P.S。下次不要提供代码的图像,而是复制并粘贴它。您可以使用 cmd+k 组合 - 在 Mac.