Android上的gradle自定义任务顺序

时间:2013-12-30 14:34:08

标签: android build gradle build-automation

我想在assembleRelease任务之后运行2个gradle任务。

task copyRequiredFilesToVersionControl(type:Copy) {
  ...
}

task ('versionControl') << {
  ...
}

如果我为这些任务配置顺序,则以下任务永远不会被调用...

copyRequiredFilesToVersionControl.dependsOn(assembleRelease)
versionControl.dependsOn(copyRequiredFilesToVersionControl)

如果我改变顺序;

assembleRelease.dependsOn(copyRequiredFilesToVersionControl)
versionControl.dependsOn(copyRequiredFilesToVersionControl)

任务在文档的开头运行。因此,没有要复制和添加到版本控制的文件。

最好的方法是什么?

2 个答案:

答案 0 :(得分:4)

我找到了调用doLast的方法。所以我用它解决了我的问题。

assembleRelease {
    doLast {
        tasks.versionControl.execute()
    }
}

答案 1 :(得分:1)

我迄今为止发现的最佳方法是使用Gradle中的订购任务功能:有关更多文档,请参阅http://www.gradle.org/docs/current/userguide/more_about_tasks.html,目前第15.5节。

基本上,你有两个规则可用:必须在之后运行,然后运行。我非常喜欢这个规则,我用这个来自动创建项目的zip档案。注意:您仍然必须使用&#34; dependsOn&#34;如果您需要以特定顺序运行的任务,请获得正确的执行。