【问题标题】:Gradle Run Custom Task after all package-variant-Release taskGradle 在所有 package-variant-Release 任务之后运行自定义任务
【发布时间】:2018-05-16 06:51:41
【问题描述】:

我的 Customtask 解压缩 apk 并为某个文件收集 sha1,所以我创建了我的任务,但我想在每次生成任何 apk(任何内置或任何变体)时执行它,不知道如何准确触发我的任务apk 已创建。请帮忙。

类似下面的东西

android {
    task customTask {}

    afterEvaluate {
        package<VariantName>Release.finalizedBy(customTask)
    }
}

生成每个变体 apk 后,我需要运行我的自定义任务。我可以通过明确指定任务名称来为一种变体执行此操作,例如

    afterEvaluate {
        packageDbRelease.finalizedBy(customTask)
    }

但我还有 5 个变体,例如 packageARRelease 等,之后我想运行相同的自定义任务。

【问题讨论】:

  • 不可能在单个 Gradle 构建中多次运行任务。您可以将每个 package&lt;VariantName&gt;Release 的操作放在一个任务中(在所有这些操作之后执行),或者为每个操作创建一个自定义任务。
  • afterEvaluate 作为配置阶段的最后一部分执行,这意味着任何任务运行之前。任务只能在执行阶段运行。我会检查packageXYRelease 任务的任务类型并使用tasks.withType(...) 或尝试直接迭代您的变体。

标签: android gradle android-gradle-plugin


【解决方案1】:

您需要为每个构建变体创建一个任务:

android {
    applicationVariants.all { variant
        task "customTaskFor${variant.name.capitalize()}" {
            // configure your task
        }
        tasks["package${variant.name.capitalize()}Release"].finalizedBy "customTaskFor${variant.name.capitalize()}"
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-07
    • 2015-12-30
    • 2011-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多