gradle
Зависимости задач
Поиск…
замечания
doLast
Обратите внимание, что в градиенте 3.x больше идиоматического определения задачи: использование явного doLast {закрытия} вместо оператора «leftShift» (<<) предпочтительнее. ( LeftShift устарел в градиенте 3.2, планируется удалить в градиенте 5.0 .)
task oldStyle << {
println 'Deprecated style task'
}
эквивалентно:
task newStyle {
doLast {
println 'Deprecated style task'
}
}
Добавление зависимостей с использованием имен задач
Мы можем изменить порядок выполнения задач с dependsOn
метода dependsOn
.
task A << {
println 'Hello from A'
}
task B(dependsOn: A) << {
println "Hello from B"
}
Добавление `dependsOn: вызывает:
- задача B зависит от задачи A
- Gradle для выполнения
A
задачи каждый раз передB
выполнения задачи.
И выход:
> gradle -q B
Hello from A
Hello from B
Добавление зависимостей из другого проекта
project('projectA') {
task A(dependsOn: ':projectB:B') << {
println 'Hello from A'
}
}
project('projectB') {
task B << {
println 'Hello from B'
}
}
Чтобы ссылаться на задачу в другом проекте, вы префикс имени задачи с указанием пути к проекту, к которому он принадлежит :projectB:B
И выход:
> gradle -q B
Hello from A
Hello from B
Добавление зависимости с использованием объекта задачи
task A << {
println 'Hello from A'
}
task B << {
println 'Hello from B'
}
B.dependsOn A
Это альтернативный способ определения зависимости вместо использования имени задачи .
И результат тот же:
> gradle -q B
Hello from A
Hello from B
Добавление нескольких зависимостей
Вы можете добавить несколько зависимостей.
task A << {
println 'Hello from A'
}
task B << {
println 'Hello from B'
}
task C << {
println 'Hello from C'
}
task D << {
println 'Hello from D'
}
Теперь вы можете определить набор зависимостей:
B.dependsOn A
C.dependsOn B
D.dependsOn C
Выход:
> gradle -q D
Hello from A
Hello from B
Hello from C
Hello from D
Другой пример:
B.dependsOn A
D.dependsOn B
D.dependsOn C
Выход:
> gradle -q D
Hello from A
Hello from B
Hello from C
Hello from D
Множественные зависимости с методом dependOn
Вы можете добавить несколько зависимостей.
task A << {
println 'Hello from A'
}
task B(dependsOn: A) << {
println 'Hello from B'
}
task C << {
println 'Hello from C'
}
task D(dependsOn: ['B', 'C'] << {
println 'Hello from D'
}
Выход:
> gradle -q D
Hello from A
Hello from B
Hello from C
Hello from D