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

时间:2015-01-20 16:56:39

标签: gradle build.gradle

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

--- Subproject1

--- Subproject2

--- Subproject3

|的build.gradle

| settings.gradle

Subproject2取决于子项目1

子项目3取决于子项目2

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

我试图定义" doFirst" for" build"在root项目build.gradle并放置" init"代码到它。但在这种情况下" init"在每个" build"之前执行的代码。 我试图为每个" build"定义对root的依赖。但面临同样的问题。

1 个答案:

答案 0 :(得分:4)

Gradle非常简单。定义您的init任务(可能在根项目中)并自定义子项目中的build任务以依赖此init build.dependsOn ':init' 更多详情请见http://www.gradle.org/docs/current/userguide/tutorial_using_tasks.html

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