You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Gradle跨模块自定义任务依赖:模块B任务先于模块A执行

解决方案

默认的implementation project(":module-B")仅建立了模块间编译、运行时的产物依赖,Gradle不会自动关联自定义任务的执行顺序,需要显式配置任务依赖关系,有两种常用方式:

方式一:直接关联两个自定义任务

在模块A的build.gradle(或build.gradle.kts)中,精准指定模块A的自定义任务1依赖于模块B的自定义任务1:

Groovy DSL

// 获取模块B的customTask1任务
def moduleBCustomTask = project(':module-B').tasks.named('customTask1').get()

// 配置模块A的customTask1依赖该任务
tasks.named('customTask1') {
    dependsOn moduleBCustomTask
}

Kotlin DSL

val moduleBCustomTask = project(":module-B").tasks.named("customTask1").get()

tasks.named<DefaultTask>("customTask1") {
    dependsOn(moduleBCustomTask)
}

这种方式仅控制目标自定义任务的执行顺序,不会干扰其他任务的构建流程。

方式二:将模块B的自定义任务绑定到默认构建流程

如果模块B的customTask1是生成其核心产物的必要环节,可以在模块B的build.gradle中,将该任务关联到默认的assemble任务:

Groovy DSL

tasks.named('assemble') {
    dependsOn 'customTask1'
}

Kotlin DSL

tasks.named("assemble") {
    dependsOn("customTask1")
}

此时模块A依赖模块B的implementation时,Gradle会自动触发模块B的assemble任务,进而间接执行customTask1,适合该任务是模块B构建流程中不可或缺的部分的场景。

内容的提问来源于stack exchange,提问作者Cheetah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 20:34:53