使用安卓 gradle 插件时,在包后运行任务应用程序



Gradle能够在其他任务之后运行任务。语法是taskY.mustRunAfter taskX。android gradle插件说它定义的ApplicationVariant 任务之一是packageApplication。

在我的build.gradle中,我有 taskX.mustRunAfter packageApplication

我得到的错误是"在项目':someproject'上找不到属性'包应用程序'。

甚至有可能访问包应用程序任务吗?如果是这样,这是否被视为不良做法?

我找到了答案。 rciovati澄清了围绕mustRunAfter的困惑,我所做的是错误的方法。我最终将taskY转换为时髦的功能。然后使用以下代码:

android.applicationVariants.all { variant ->
    // rename apk after we assemble the application
    variant.assemble.doLast {
        taskY(variant)
}

请注意文档中的这句话:

通过使用"必须在以下时间后运行"排序规则,您可以指定任务B 必须始终在任务 A 之后运行,只要任务 A 和任务 B 都 计划执行

这意味着

taskX.mustRunAfter packageApplication

不会使taskX总是在packageApplication后运行,而只是当您键入以下内容时:

./gradlew taskX packageApplication
另一方面,它

没有定义依赖关系,也就是说它不会自动运行taskX任务。

要执行某些操作,在执行任务后,您可以使用doLast闭包:

taskX.doLast{ println 'Hello' }

packageApplicationApplicationVariant类的属性,但不是任务。任务package<VariantName>.

相关内容

  • 没有找到相关文章