Android上的gradle自定义任务顺序

Alk*_*ake 6 build-automation android build gradle

我有两个gradle任务,我想在assembleRelease任务后运行.

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

task ('versionControl') << {
  ...
}
Run Code Online (Sandbox Code Playgroud)

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

copyRequiredFilesToVersionControl.dependsOn(assembleRelease)
versionControl.dependsOn(copyRequiredFilesToVersionControl)
Run Code Online (Sandbox Code Playgroud)

如果我改变顺序;

assembleRelease.dependsOn(copyRequiredFilesToVersionControl)
versionControl.dependsOn(copyRequiredFilesToVersionControl)
Run Code Online (Sandbox Code Playgroud)

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

什么是最好的方法?

Alk*_*ake 4

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

assembleRelease {
    doLast {
        tasks.versionControl.execute()
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 不幸的是,这不适用于 gradle-experimental。我收到错误:“assembleRelease Object [*] [*] - 表示无法找到该路径或类型的模型项。” (2认同)