【问题标题】:gradle custom task order on AndroidAndroid上的gradle自定义任务顺序
【发布时间】:2014-01-17 11:02:38
【问题描述】:

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

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

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

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

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

如果我像这样更改订单;

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

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

最好的方法是什么?

【问题讨论】:

    标签: android build gradle build-automation


    【解决方案1】:

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

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

    【讨论】:

    • 不幸的是,这不适用于 gradle-experimental。我收到一个错误:assembleRelease Object [*] [*] - indicates that a model item could not be found for the path or type.
    【解决方案2】:

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

    基本上,您有两个可用的规则:必须在之后运行和应该在之后运行。我非常喜欢这个规则,我用它来自动创建项目的 zip 档案。注意:如果您需要按特定顺序运行的任务,您仍然必须使用“dependsOn”来正确执行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-21
      • 2012-02-27
      • 2015-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-14
      • 1970-01-01
      相关资源
      最近更新 更多