Ось як я це зробив, використовуючи сценарії Kotlin, використовуючи і dependOn, і mustRunAfter. Ось приклад запуску двох завдань, одне (спеціально зареєстроване завдання "importUnicodeFiles"), яке знаходиться у проекті "this", і одне (заздалегідь визначене завдання "run"), яке знаходиться у проекті односекційного проекту з назвою ": unicode":
tasks.register("rebuildUnicodeFiles") {
description = "Force the rebuild of the `./src/main/resources/text` data"
val make = project(":unicode").tasks["run"]
val copy = tasks["importUnicodeFiles"]
dependsOn(make)
dependsOn(copy)
copy.mustRunAfter(make)
}
Зазвичай розробники Gradle не рекомендують застосовувати такий підхід (вони кажуть, що примусовувати порядок - це погано, а виконання завдань з інших проектів - погано) і працюють над способом публікації результатів між проектами; див .: https://docs.gradle.org/current/userguide/cross_project_publications.html