Gradle multi项目 - 仅执行一次root任务

mrz*_*iak 5 gradle build.gradle

我正在使用以下项目结构项目

--- Subproject1

--- Subproject2

--- Subproject3

|的build.gradle

| settings.gradle

子项目2取决于子项目1

子项目3取决于子项目2

对于所有子项目,我需要具有任务"构建",这将是每个项目的自定义.但是必须在"构建"之前执行一些初始化任务(所有子项目都相同).事情是 - 这个初始化任务必须在构建过程中只执行一次,而不是我正在构建的东西 - 根项目或任何子项目.例如,如果我构建Subproejct3,则序列必须如下:init build Subproject1 build Subproject2 build Subproject3

我试图在root项目build.gradle中为"build"定义"doFirst"并将"init"代码放入其中.但在这种情况下,"init"代码在每次"构建"之前执行.我尝试为每个"构建"定义对root的依赖,但是遇到了与之前相同的问题.

Rad*_*dim 4

使用 Gradle 这非常简单。定义您的init任务(可能在根项目中)并自定义build子项目中的任务以依赖于此 init,如 build.dependsOn ':init' 更多详细信息,请访问http://www.gradle.org/docs/current/userguide/tutorial_using_tasks.html

顺便说一句:每个任务在构建开始时只能执行一次,因此您似乎已多次使用 doFirst() 添加任务操作或将其添加到已执行的多个任务中。