Выполнить задачу перед андроидом gradle build?
возможно ли выполнить gradle задачу перед вызовом
gradle build
что-то вроде прекомпиляции. Кто-то, пожалуйста, помогите. Что-то вроде этого возможно и как?
Ответы
Ответ 1
Вы можете сделать это следующим образом:
task build << {
println 'build'
}
task preBuild << {
println 'do it before build'
}
build.dependsOn preBuild
Благодаря этой задаче preBuild
будет автоматически вызываться перед задачей build
.
Если вы хотите запустить preBuild
в фазе конфигурации (предыдущий пример preBuild
в фазе execution
), вы можете сделать это следующим образом:
task build << {
println 'build'
}
build.doFirst {
println 'do it before build'
}
Подробнее о gradle жизненном цикле сборки можно прочитать здесь http://www.gradle.org/docs/current/userguide/build_lifecycle.html.
Ответ 2
Для тех, кто задается вопросом, как это сделать в Android-проекте, это сработало для меня:
task myTask << {
println "here a task"
}
preBuild.dependsOn myTask
Ответ 3
Есть еще один способ, как это сделать
task myTask << {
println "here a task"
}
tasks.whenTaskAdded { task ->
if (task.name == 'assembleDebug') {
task.dependsOn myTask
}
Ответ 4
Если задача, которая должна быть запущена, уже определена (например, publishToMavenLocal
), вы можете добавить ее в gradle build
с помощью:
build.dependsOn publishToMavenLocal