我正在使用以下项目结构 项目
--- 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的依赖。但面临同样的问题。
答案 0 :(得分:4)
Gradle非常简单。定义您的init
任务(可能在根项目中)并自定义子项目中的build
任务以依赖此init
build.dependsOn ':init'
更多详情请见http://www.gradle.org/docs/current/userguide/tutorial_using_tasks.html
顺便说一句:每个任务只能在构建开始时执行一次,因此您似乎已多次使用doFirst()添加任务操作或将其添加到已执行的多个任务中。