Как добавить зависимости задач в Gradle? - PullRequest
0 голосов
/ 11 июля 2020

Я пытаюсь написать задачу с именем 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.

Как мне заставить Gradle запускать ./gradlew clean build всякий раз, когда я набираю ./gradlew stage? Это явно не решение, и я не понимаю, что делаю неправильно.

Я тоже пробовал это, но это тоже не сработало. Он выполняет те задачи, которые я хочу, но в конце он запускает 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)
    }
}

1 Ответ

0 голосов
/ 11 июля 2020

намного проще

plugins {
    base
}

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

поэтому, когда вы запускаете stage - он должен выполнить очистку и построить

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...