2014-12-19 5 views
2

В моем проекте у меня есть 3 продукта (dev, производство и тестирование). Недавно я переключился с Ant, так что, возможно, у меня все еще есть мышление мутанта, но этого я и пытаюсь достичь:Как назначить задачу градиента андроидов из другой задачи

создать пользовательскую задачу (назовем ее «buildAndUpload»), которая вызовет сборкуDevRelease, а затем вызовет другую задача.

Вот что я пробовал:

task myCustomTask { 
    println "My Custom Task" 
} 

task buildAndUpload { 
    tasks.assembleDevRelease.execute() 
    tasks.myCustomTask.execute() 
} 

Когда я называю buildAndUpload задачу (gradlew buildAndUpload) Я получаю следующий вывод:

:buildAndUpload 
"My Custom Task" 

Как вы можете видеть, задача assembleDevRelease не называется , Я знаю, что я могу использовать закрытие doLast, но я действительно хочу, чтобы вызов myCustomTask содержался в отдельной задаче.

ответ

4

Задача не может вызвать другую задачу, но она может зависеть от нее. Например:

task myCustomTask { 
    dependsOn "assembleDevRelease" 
    doLast { 
     println "executing..." 
    } 
} 
1

Вы должны установить две задачи в качестве зависимостей. Вы хотите сделать что-то вдоль линий

task buildAndUpload(dependsOn: ['assembleDevRelease', 'myCustomTask'] { 
} 

Также, пожалуйста, обратитесь к документации Gradle на жизненном цикле сборки для более подробной информации о порядке исполнения: http://www.gradle.org/docs/current/userguide/build_lifecycle.html

+0

Гарантируется ли порядок исполнения в этом случае? – nemezis

Смежные вопросы