【发布时间】: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)
}
}
【问题讨论】: