Gradle task简单使用
2024-09-06 10:14:05
还望支持个人博客站:http://www.enjoytoday.cn
task是什么
task是gradle构建脚本的最小运行单元,我们通过在gradle脚本中创建task任务,以期完成某个特定的功能,task在build.gradle中定义实现,task本身作为一个单独的运行单元,在编译时通过执行gradle task运行或者通过task之间的依赖运行。
如何定义task
task定义的方法很简单,创建的方式主要为两种:一种迭代声明task任务以及doLast,doFirst方法添加可执行代码;一种是通过 “<<” 快捷创建task任务,闭合执行任务代码。但不仅限于这两种,如下,为两种创建的简单代码格式:
//迭代创建
task A{
doLast{
println "this is task A."
}
}
//可执行的简略创建方式
task B << {
println "this is task B"
}
运行结果如下:
caihaifei@hfcai:$ gradle A
:A
this is task A.
BUILD SUCCESSFUL
Total time: 0.883 secs
caihaifei@hfcai:$ gradle -q B
this is task B
如上所示,直接通过gradle [-q] A(创建的任务名),即可执行查看运行结果。
task之间的依赖
task 可以通过dependsOn实现task任务间的依赖,可以选择直接在定义task时或者定义结束后添加依赖说明,定义依赖根据依赖声明的位置的前后,依赖说明写法略有不同,格式如下所示:
task A{
doLast{
println "this is task A."
}
}
task B << {
println "this is task B"
}
B.dependsOn('E')
task C(dependsOn: B) << {
println "this is task C"
}
task D(dependsOn: 'E') <<{
println "this is task D."
}
task E << {
println "this is task E"
}
A.dependsOn(B)
结果验证可以通过运行task A 、task B 、task C、task D查看结果,结果显示如下:
caihaifei@hfcai:$ gradle -q A
this is task E
this is task B
this is task A.
caihaifei@hfcai:$ gradle -q B
this is task E
this is task B
caihaifei@hfcai:$ gradle -q C
this is task E
this is task B
this is task C
caihaifei@hfcai:$ gradle -q D
this is task E
this is task D.
task的执行方法
task的执行方法如上所是,已经介绍了一些,我们可以通过gradle指定执行task,也可以通过依赖于其他任务而在其他任务执行前执行,除此之外,我们还可以通过在脚本中指定默认执行任务,可以直接通过gradle执行,使用很简单,在脚本开头添加如下格式代码:
defaultTasks 'A','C'
执行方法以及结果如下:
caihaifei@hfcai:~$ gradle -q
this is task E
this is task B
this is task A.
this is task C
更多gradle介绍请查看:http://www.enjoytoday.cn/categorys/Gradle
最新文章
- 如何在启用SharePoint浏览器功能的InfoPath 表单中添加托管代码以动态地加载并显示图片
- [POJ1068]Parencodings
- for循环练习
- Leetcode 107 Binary Tree Level Order Traversal II 二叉树+BFS
- 如何用ZBrush快速雕刻LOL中的Lissandra
- eclipse 连接 mysql
- Qt的版本历史
- easyui源码翻译1.32--ComboBox(下拉列表框)
- JavaScript- The Good Parts Chapter 4
- JavaScript核心
- push() &; concat()
- mysql大写和小写问题
- Hibernat之关系的处理一对一处理
- HTTP协议----ETag
- Microsoft Visual C++ Package Server 已停止工作
- List,Set,Map
- 关于 JavaScript 中的复制数组
- 【原创】大叔经验分享(1)在yarn上查看hive完整执行sql
- Mac 永久添加 环境变量方法
- elasticsearch数据结构
热门文章
- Web前端基础(14):jQuery基础(一)
- element-ui组件中的input等的change事件中传递自定义参数
- Ubuntu16.0 GTX1660Ti 安装NVIDIA CUDA cuDNN Tensflow
- git submodule git 子模块管理相关操作
- August 04th, 2019. Week 32nd, Sunday
- JVM-4-堆内存划分
- JavaScript-----6.流程控制:分支
- Android 中的AlertDialog使用自定义布局
- CF1253F Cheap Robot(神奇思路,图论,最短路,最小生成树/Kruskal 重构树/并查集)
- python TKinter的主窗口运行程序完毕后,怎么让其自动关闭