前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Android Gradle 插件】自定义 Gradle 任务 ⑧ ( 控制 Gradle 执行任务顺序 | Task#shouldRunAfter 函数 | 三个函数使用场景对比 )

【Android Gradle 插件】自定义 Gradle 任务 ⑧ ( 控制 Gradle 执行任务顺序 | Task#shouldRunAfter 函数 | 三个函数使用场景对比 )

作者头像
韩曙亮
发布2023-03-30 17:06:54
4330
发布2023-03-30 17:06:54
举报
文章被收录于专栏:韩曙亮的移动开发专栏

文章目录

Android Plugin DSL Reference 参考文档 :

一、Task#shouldRunAfter 函数


Task#shouldRunAfter 函数的作用是为 Gradle 任务设置该任务执行时 , 应该在某个任务之后 ;

Task#shouldRunAfter 函数原型 :

代码语言:javascript
复制
TaskDependency shouldRunAfter​(Object... paths)

Specifies that this task should run after all of the supplied tasks.
指定此任务应在所有提供的任务之后运行。

 task taskY {
     shouldRunAfter "taskX"
 }
 
For each supplied task, this action adds a task 'ordering', 
and does not specify a 'dependency' between the tasks. 
As such, it is still possible to execute 'taskY' without first executing the 'taskX' in the example.
对于每个提供的任务,此操作添加一个任务“排序”,
并且不指定任务之间的“依赖关系”。
因此,仍然可以在不首先执行示例中的“taskX”的情况下执行“taskY”。

See here for a description of the types of objects which can be used to specify an ordering relationship.
有关可用于指定排序关系的对象类型的描述,请参阅此处。

Parameters:
paths - The dependencies to add to this task.
        要添加到此任务的依赖项。
Returns:
the task object this method is applied to
应用此方法的任务对象

文档地址 : https://docs.gradle.org/current/javadoc/org/gradle/api/Task.html#shouldRunAfter-java.lang.Object…-

二、Task#shouldRunAfter 函数 、Task#mustRunAfter 函数、Task#dependsOn 函数 使用场景对比


Task#shouldRunAfter 函数 与 Task#mustRunAfter 函数 设置的任务 , 一般情况下先执行该设置的任务 ,

Task#shouldRunAfter 函数 没有 Task#mustRunAfter 函数 严格 ,

如果是在并行编译执行任务的情况下 , Task#shouldRunAfter 函数设置的任务可能会在目标任务之后执行 ,

但是 Task#mustRunAfter 函数设置的任务必须在目标函数之前执行 ;

Task#shouldRunAfter 函数 , Task#mustRunAfter 函数 , Task#dependsOn 函数 使用场景对比 :

A.dependsOn B : 执行 A 任务时 , 必须先执行 B , 否则 A 任务无法执行 ;

A.mustRunAfter B : 如果需要执行 A 任务 , 则必须在 B 任务之后 ;

  • 假如这两个任务都需要执行 , 则先执行 B 任务 , 再执行 A 任务 ; 如果并行执行 A B 两个任务 , 也必须先 B 后 A ;
  • 假如只需要执行 A 任务 , 则不需要考虑 B 任务 ;
  • 假如只需要执行 B 任务 , 也不需要考虑 A 任务 ;

A.shouldRunAfter B : 如果需要执行 A 任务 , 则应该在 B 任务之后 ; A 任务 与 B 任务 不强制进行要求 ;

  • 假如这两个任务都需要执行 , 则先执行 B 任务 , 再执行 A 任务 ; 如果并行执行 A B 两个任务 , A B 任务执行的先后顺序不做要求 ;
  • 假如只需要执行 A 任务 , 则不需要考虑 B 任务 ;
  • 假如只需要执行 B 任务 , 也不需要考虑 A 任务 ;
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-09-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、Task#shouldRunAfter 函数
  • 二、Task#shouldRunAfter 函数 、Task#mustRunAfter 函数、Task#dependsOn 函数 使用场景对比
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档