如何从另一个任务调用android flavor gradle任务

时间:2014-12-19 22:07:52

标签: android gradle

在我的项目中,我有3种产品口味(开发,生产和测试)。我最近从Ant切换过,所以也许我仍然有Ant的心态,但这就是我想要实现的目标:

创建自定义任务(让我们调用它" buildAndUpload"),这将调用assembleDevRelease,然后调用另一个任务。

以下是我尝试的内容:

task myCustomTask {
  println "My Custom Task"
}

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

当我调用buildAndUpload任务(gradlew buildAndUpload)时,我得到以下输出:

:buildAndUpload 
"My Custom Task"  

正如您所看到的,未调用assembleDevRelease任务。我知道我可以使用doLast闭包,但我真的想让myCustomTask调用包含在单独的任务中。

2 个答案:

答案 0 :(得分:5)

任务不能调用另一个任务,但它可以依赖它。例如:

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

答案 1 :(得分:1)

您应该将这两个任务设置为依赖项。你想要按照

的方式做点什么
task buildAndUpload(dependsOn: ['assembleDevRelease', 'myCustomTask'] {
}

有关执行顺序的更多详细信息,请参阅构建生命周期的Gradle文档: http://www.gradle.org/docs/current/userguide/build_lifecycle.html