首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >9--Gradle进阶 - Gradle任务的依赖方式

9--Gradle进阶 - Gradle任务的依赖方式

作者头像
Devops海洋的渔夫
发布于 2023-09-01 00:54:46
发布于 2023-09-01 00:54:46
81001
代码可运行
举报
文章被收录于专栏:Devops专栏Devops专栏
运行总次数:1
代码可运行

9--Gradle进阶 - Gradle任务的依赖方式

前言

Gradle Task 任务之间是可以配置依赖的,那么为什么要配置依赖?

因为任务有可能依赖其他任务执行完毕之后,才可以开始执行。对于这种情况,我们就可以通过任务的依赖来控制。

下面来介绍一下任务的依赖方式。

任务的依赖方式

Task 之间的依赖关系可以在以下几部分设置:

  1. 参数依赖
  2. 内部依赖
  3. 外部依赖
方式一:参数方式依赖

下面我们定义 task A、task B,其中 task C 依赖 A B 两个任务执行完毕后,才执行,如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 任务的依赖方式
// 方式一:参数方式依赖
task A {
    doLast {
        println "TaskA.."
    }
}
task 'B' {
    doLast {
        println "TaskB.."
    }
}
//参数方式依赖: dependsOn后面用冒号
task 'C'(dependsOn: ['A', 'B']) {
    doLast {
        println "TaskC.."
    }
}

执行如下:

1685978271258

方式二: 内部依赖

在上面我们将 任务的依赖写在参数上,其实还可以写在 任务内部,如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//参数方式依赖: dependsOn后面用冒号
task 'C' {
    //内部依赖:dependsOn后面用 = 号
    dependsOn = ['A', 'B']
    doLast {
        println "TaskC.."
    }
}

执行如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
gradle C

1685978663428

方式三:外部依赖

// 外部依赖:可变参数,引号可加可不加

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
C.dependsOn(B,'A')

完整 task C 代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//参数方式依赖: dependsOn后面用冒号
task 'C' {
    doLast {
        println "TaskC.."
    }
}

// 外部依赖:可变参数,引号可加可不加
C.dependsOn(B, 'A')

执行如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
gradle C

1685978975517

跨模块项目设置依赖

“当然:task 也支持跨项目依赖 ”

在subproject01 工程的 build.gradle 文件中定义:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 在subproject01定义task
task subTaskA {
    doLast(){
        println("subTaskA")
    }
}

1685979230684

在subproject02 工程的 build.gradle 文件中定义:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 在subproject02定义task
task subTaskB {
    //依赖根工程下的subject01中的任务subTaskA :跨项目依赖。
    dependsOn(":subproject01:subTaskA")
    doLast(){
        println("subTaskB")
    }
}

可以从结果来看,跨模块项目的 gradle task 是可以相互依赖的。

扩展说明

拓展 1:当一个 Task 依赖多个Task 的时候,被依赖的Task 之间如果没有依赖关系,那么它们的执行顺序是随机的,并无影响。

拓展 2:重复依赖的任务只会执行一次,比如:

A->B、C

B->C

任务A 依赖任务 B 和任务 C、任务 B 依赖C 任务。执行任务A 的时候,显然任务C 被重复依赖了,C 只会执行一次。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-06-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 海洋的渔夫 微信公众号,前往查看

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

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

评论
登录后参与评论
暂无评论
推荐阅读
Infinity New Tab:重新定义你的Chrome新标签页
Infinity new tab 是一款实用又清新的 Chrome(谷歌浏览器)新标签页功能扩展,可以完美替代默认的新标签页。受插件作者邀请,我特意安装体验了一把 ,还是很不错的! 下面就分享一下,希
张戈
2018/03/23
2.5K0
Infinity New Tab:重新定义你的Chrome新标签页
油猴插件-百度网盘
首先,你要知道油猴是什么的话,那你就必须知道谷歌浏览器的扩展程序是什么?点解浏览器右上角–>更多工具–>
用户8478399
2022/09/01
1.7K0
油猴插件-百度网盘
网页截长图 截屏Google Chrom 插件 FireShot 分享 3000万人使用的网页截图插件
FireShot是一款出色的免费工具,可用于在Windows PC上捕获网页。其易于使用的界面让您可以捕获页面的一部分、整个浏览器窗口,甚至是所有打开的选项卡的内容。该内置编辑器让您编辑和注释您的捕获,然后保存到本地计算机上或转移到其他地方,比如你的电子邮件或到云。 简单的免费和付费版本
梦溪
2021/08/12
4.8K0
Infinity插件 让Chrome浏览器实现添加10+N个快捷方式(不限制)
Chrome新标签页是指在打开谷歌浏览器的时候,如果没有设置主页而显示的默认界面,或者用户点击Chrome的标签按钮产生的一个新的浏览器初始界面,在该界面中用户可以重新打开一个新的网址或者操作一些Chrome应用,如果没有安装任何Chrome插件的话,该页面显示的就是Chrome提供的默认新标签页,当然用户也可以选择在Chrome商店中搜索一款更加实用的新标签页插件来获得更加实用、个性化的新标签页
EXI-小洲
2022/12/13
2.1K0
Infinity插件 让Chrome浏览器实现添加10+N个快捷方式(不限制)
推荐 8 个超实用的谷歌 Chrome 插件,大牛都在用
程序员最喜欢的浏览器非 Chrome 莫属,Chrome 快捷方便而且功能强大,是当下IT圈最受欢迎的浏览器。这次我们精选的几款插件,对你的工作效率会大幅的提升,非常有用!
崔庆才
2019/06/19
3.2K0
推荐 8 个超实用的谷歌 Chrome 插件,大牛都在用
极力推荐的谷歌浏览器插件
今天有幸请教了 记得诚、小麦大叔、SoWhat、程序猿学社 等十位博客专家,给大家推荐一些谷歌浏览器插件,让你的谷歌浏览器更实用,成为真正的生活办公小助手!
Twcat_tree
2022/11/30
3.3K0
极力推荐的谷歌浏览器插件
使你的Chrome使用的更加便捷
对于普通人来说,Chrome是一个不常见的浏览器,但是对于程序猿一族而言,Chrome简直就是开发项目的神器,但是大家都知道,目前由于种种原因,在咱们天朝暂时是登录不了Google的,而且即使你下载的到Chrome,你是用Chrome也不是那么便捷,大家请看一下几点,是否是你不适用Chrome的理由,你中没中枪:
Meng小羽
2019/12/23
1.5K0
安卓android版Chrome浏览器设置教程
Google Chrome是一款由Google公司开发的网页浏览器,该浏览器基于其他开源软件撰写,包括WebKit,目标是提升稳定性、速度和安全性,并创造出简单且有效率的使用者界面。
爱游博客
2019/08/07
15.1K0
安卓android版Chrome浏览器设置教程
Fiddler之Chrome+移动端IOS抓包配置教程( 亲测可用,建议收藏! )
个人搜集了下近期网上最新的抓包文档,进行安装尝试,抓包成功后加以整理,内部团队分享之
测试小兵
2023/03/03
3.3K0
Fiddler之Chrome+移动端IOS抓包配置教程( 亲测可用,建议收藏! )
谷歌浏览器油猴插件安装教程(超详细),让你的浏览器更加强大[通俗易懂]
首先,你要知道油猴是什么的话,那你就必须知道谷歌浏览器的扩展程序是什么?点解浏览器右上角–>更多工具–> 扩展程序,进入我们的扩展程序界面,在这里可以看到我们已经安装的扩展程序。
全栈程序员站长
2022/09/14
43K0
谷歌浏览器油猴插件安装教程(超详细),让你的浏览器更加强大[通俗易懂]
【CSDN浏览器插件测评超详细版】——万能便捷的C功能,直接爱不释手,强烈推荐!更多功能等你探索
我的界面预览: 1.下载安装 下载链接:https://plugin.csdn.net/?utm_source=chajian-contest-1210#/chrome-index-help 说明:若
汀丶人工智能
2022/12/21
3630
【CSDN浏览器插件测评超详细版】——万能便捷的C功能,直接爱不释手,强烈推荐!更多功能等你探索
美化神器chrome新标签页—Infinity新标签页
Chrome新标签页是指在打开谷歌浏览器的时候,如果没有设置主页而显示的默认界面,或者用户点击Chrome的标签按钮产生的一个新的浏览器初始界面,在该界面中用户可以重新打开一个新的网址或者操作一些Chrome应用,如果没有安装任何Chrome插件的话,该页面显示的就是Chrome提供的默认新标签页,当然用户也可以选择在Chrome商店中搜索一款更加实用的新标签页插件来获得更加实用、个性化的新标签页。
爱游博客
2019/08/08
2.6K0
简单,清爽的浏览器标签页,支持Chrome,Edge和Firefox
在设置页面,可以更改标签的背景颜色 和 底部的导航展示。我们可以按需打开。
huolong
2024/12/25
3740
简单,清爽的浏览器标签页,支持Chrome,Edge和Firefox
Google浏览器——AxureRP_for_chorme_0_6_2添加
首先把需要安装的第三方插件,后缀.crx 改成 .rar,然后解压,得到一个文件夹,我已经帮大家压缩好了,直接解压就可以了
思索
2024/08/16
5820
Google浏览器——AxureRP_for_chorme_0_6_2添加
Microsoft Edge有哪些你不知道却超级好用的插件?(Microsoft Edge功能测评)
  作为一款先进的Web浏览器,Edge浏览器受到越来越多人的关注和喜爱。它是由微软开发的,为Windows 10操作系统而生,但也可以在其他平台上使用。Edge浏览器的特点是速度快、安全可靠、界面简洁美观等
初阶牛
2023/10/14
1.7K0
Microsoft Edge有哪些你不知道却超级好用的插件?(Microsoft Edge功能测评)
你的浏览器,何必是浏览器
工欲善其事,必先利其器,作为大学生或者从业人员,如果能熟练地使用各种工具来提高自己的工作学习效率必然是一件好事!!!
小孙同学
2022/01/17
3.3K0
你的浏览器,何必是浏览器
CSDN浏览器助手下载使用
你是否为浏览器的杂乱界面、无尽的广告以及效率低下的工作流程感到烦恼? CSDN浏览器助手 为您带来解决方案!这款插件不仅能去除广告,还提供个性化标签页、强大的万能搜索框以及多种快捷工具。本文将带您详细了解如何安装和使用这款神器,让您在浏览器上如虎添翼。
默 语
2025/05/21
1470
​Chrome扩展插件的开发--获取网页Cookies
Chrome浏览器在浏览器类应用软件中一直居于榜首,很多人选择Chrome浏览器不仅仅是因为它的稳定,还有它丰富的可拓展性。那么有没有想自己开发一款自己的谷歌浏览器插件呢?本文将介绍大家手动开发一个谷歌浏览器插件获取cookies.
凯哥Java
2022/10/30
1.7K0
​Chrome扩展插件的开发--获取网页Cookies
HandsomeTab - 优雅的新标签页扩展
HandsomeTab 是一个简洁优雅的浏览器新标签页扩展,让你的浏览器更加美观实用。
HandsomeYo
2025/04/03
1670
腾讯云AI代码助手开发最佳实践:实现一个复制浏览器标签页链接为Markdown的Chrome插件
最近腾讯云AI代码助手上线了满血版的DeepSeek,并推出了有奖活动。看到这个消息的我跃跃欲试,想要借助腾讯云AI代码助手的能力,来做点什么。想到我平常喜欢用Markdown语法来写文章,那么就做一款Markdown相关的Chrome插件吧。一方面想测试下腾讯云AI代码助手是否能够快速实现我想要的功能;另一方面我也确实希望能快速上手Chrome开发,做出一款自己的专属插件。接下来我会分享我是如何用腾讯云AI代码助手,在极短的时间内,完成这款插件开发的。
喵喵侠
2025/03/03
4367
腾讯云AI代码助手开发最佳实践:实现一个复制浏览器标签页链接为Markdown的Chrome插件
推荐阅读
相关推荐
Infinity New Tab:重新定义你的Chrome新标签页
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档