【问题标题】:How to add task dependencies in Gradle?如何在 Gradle 中添加任务依赖项?
【发布时间】:2020-11-01 02:03:15
【问题描述】:

我正在尝试编写一个名为 stage 的任务,如下所示:

plugins {
    base
}

val clean = "clean"
val build = "build"

tasks.register("stage") {
    dependsOn(clean, build)
}

tasks[build].dependsOn(clean)

问题是当我运行./gradlew stage 时,它不会运行clean,也不会运行build。这是一个多项目构建,我有 3 个使用 Kotlin 代码的子项目。

当我输入./gradlew stage 时,如何让Gradle 运行./gradlew clean build?这显然不是解决方案,我看不出我做错了什么。

我也试过这个,但也没有用。它运行我想要的任务,但最后它运行clean,我最终没有build 文件夹:

tasks.register("stage") {
    subprojects.forEach { project ->
        val clean = project.tasks.first { it.name.contains("clean") }
        val build = project.tasks.first { it.name.contains("build") }
        build.dependsOn(clean)
        dependsOn(build)
    }
}

【问题讨论】:

    标签: kotlin gradle build


    【解决方案1】:

    简单多了

    plugins {
        base
    }
    
    allprojects {
        task stage() {
            dependsOn(clean, build)
        }
    }
    

    所以当你运行阶段 - 它应该做干净和构建

    【讨论】:

    • 这是给 Groovy 的,但我使用的是 Kotlin DSL。
    猜你喜欢
    • 1970-01-01
    • 2018-03-02
    • 2015-10-12
    • 2016-02-26
    • 2020-04-15
    • 1970-01-01
    • 2015-07-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多