Gradle task简单使用
还望支持个人博客站: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
Gradle task简单使用的更多相关文章
- gradle wrapper 简单使用
其实就是对于gradle 的一个包装,保证了项目版本的一致,同时减少配置 1. 生成wrapper // 使用gradle wrapper 命令 gradle wrapper 输出效果如下: [r ...
- 用IntelliJ IDEA创建Gradle项目简单入门
Gradle和Maven一样,是Java用得最多的构建工具之一,在Maven之前,解决jar包引用的问题真是令人抓狂,有了Maven后日子就好过起来了,而现在又有了Gradle,Maven有的功能它都 ...
- Gradle——创建简单的项目
项目 & 任务 Gradle 的一切都是基于项目和任务的. 构建由一个或多个项目组成.项目的概念很抽象,它取决于你要用Gradle 做什么 .项目可以是 一个 Jar 库或者一个 web 程序 ...
- AndroidTest工程的自定义gradle task
由于需要将assets目录的资源拷贝到设备sdcard中,然而我的工程是一个android test工程,而android test工程在编译阶段,不会把assets目录的资源打包成对应apk,而为了 ...
- Gradle task
本文来自网易云社区 作者:孙有军 1:gradle脚本是使用groovy语言写的(DSL),groovy中有一个重要的概念闭包(Closure),Closure是一段单独的代码块,它可以接收参数,返回 ...
- flutter 卡在Running Gradle task 'assembleDebug'...
Android项目运行时出错 卡在Initializing gradle… 运行时会卡在Initializing gradle..., 此时因为Android项目会用到Gradle, 如果没有FQ,下 ...
- [Android Tips] 23. How to fail/stop Gradle task immediately if some conditions are not met
throw new GradleException("conditions are not met") 参考 How to fail/stop task immediately i ...
- HDOJ 1339 A Simple Task(简单数学题,暴力)
Problem Description Given a positive integer n and the odd integer o and the nonnegative integer p s ...
- Android Gradle Task
Tasks runnable from root project ------------------------------------------------------------ Androi ...
随机推荐
- Grafana+Prometheus 监控 MySQL
转自:Grafana+Prometheus 监控 MySQL 架构图 环境 IP 环境 需装软件 192.168.0.237 mysql-5.7.20 node_exporter-0.15.2.lin ...
- PHP+Ajax实现文章心情投票功能实例
一个PHP+Ajax实现文章心情投票功能实例,可以学习了解实现投票的基本流程:通过ajax获取心情图标及柱状图相关数据,当用户点击其中的一个心情图标时,向Ajax.php发送请求,PHP验证用户coo ...
- 7天教你精通变大神,学CAD关键还要掌握方法,纯干货新手要看
接触CAD初期是“痛苦”的,“煎熬”的,也是充满“成就”的. 痛苦是初学者怎么都不懂,需要学习的东西很多,整个过程是有些痛苦的. 煎熬也是每个求学阶段都会遇到的状态,眼睛会了,手不会,这个状态很难受. ...
- Sql注入之limit注入的学习
0x01 前言 今天听学长们交流漏洞挖掘的经验,提到了Limit注入,借此来学习一下limit注入 0x02 知识介绍 limit LIMIT[位置偏移量,]行数 其中,中括号里面的参数是可选参数,位 ...
- iOS多线程定时器
在使用定时器时,我们经常使用NSTimer,但是由于NSTimer会受RunLoop影响,当RunLoop处理的任务很多时,就会导致NSTimer的精度降低,所以在一些对定时器精度要求很高的情况下,应 ...
- Jedis Unexpected end of stream & java.net.SocketException: Broken pipe问题解决思路
笔者一直维护的稳定基础服务测试环境不稳定了,这能忍!盘他,虽然不一定能完全盘的了. 背景: hrexternal 基础服务对外提供公司员工获取的多个接口,很多接口访问频率比较高,加了缓存,使用的是re ...
- git(1) 比较两个不同版本的文件
git diff commit_id1:file_name commit_id2:file_name 或者 git diff commit_id1 commit_id2 -- file_name co ...
- Re-DD-Hello
题目地址 https://dn.jarvisoj.com/challengefiles/1.Hello.12b9bde7c0c8558a9da42aa1798cafc8 用IDA打开,找到算法函数 写 ...
- Gitlab安装过程
sudo yum install -y curl policycoreutils-pythonopenssh-server sudo systemctl enable sshd sudo system ...
- js ajax设置和获取自定义header信息的方法总结
目录 1.js ajax 设置自定义header 1.1 方法一: 1.2 方法二: 2.js ajax 获取请求返回的response的header信息 3.js ajax 跨域请求的情况下获取自定 ...