Gradle多项目-仅执行一次根任务

Gradle多项目-仅执行一次根任务,gradle,build.gradle,Gradle,Build.gradle,我正在使用以下项目结构 计划 ---次级项目1 ---次级项目2 ---次级项目3 |格雷德尔先生 |格雷德尔酒店 子项目2取决于子项目1 子项目3取决于子项目2 对于所有子项目,我需要有任务“构建”,这将是每个项目的自定义任务。但在“构建”之前必须执行一些初始化任务(所有子项目都是如此)。问题是-这个初始化任务必须在构建期间执行一次,而且只能执行一次,无论我在构建什么-根项目或任何子项目。 例如,如果我构建子EJCT3,则序列必须如下所示: 初始化 构建子项目1 构建子项目2 构建子项目3 我

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

---次级项目1

---次级项目2

---次级项目3

|格雷德尔先生

|格雷德尔酒店

子项目2取决于子项目1

子项目3取决于子项目2

对于所有子项目,我需要有任务“构建”,这将是每个项目的自定义任务。但在“构建”之前必须执行一些初始化任务(所有子项目都是如此)。问题是-这个初始化任务必须在构建期间执行一次,而且只能执行一次,无论我在构建什么-根项目或任何子项目。 例如,如果我构建子EJCT3,则序列必须如下所示: 初始化 构建子项目1 构建子项目2 构建子项目3

我试图在根项目build.gradle中为“build”定义“doFirst”,并将“init”代码放入其中。但在本例中,在每次“构建”之前执行“init”代码。
我试图为每个“构建”定义对根的依赖性,但遇到了与前面相同的问题

这对于Gradle来说非常简单。定义
init
任务(可能在根项目中),并在子项目中自定义
build
任务以依赖于此init

build.dependsOn':init'
详情请浏览


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

您得到答案了吗?我也面临同样的问题。是的,就像拉迪姆在下面写的一样。只需从根项目任务中添加依赖项“:”即可