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 ...
随机推荐
- Ajax:实现后台验证js实现get方式的异步请求,判断用户名是否重复
<%@ page contentType="text/html;charset=UTF-8" language="java" %><html& ...
- SSM框架之Mybatis(6)动态SQL
Mybatis(6)动态SQL 1.动态SQL 出现原因:有些时候业务逻辑复杂时,我们的 SQL 是动态变化的,此时在前面的学习中我们的 SQL 就不能满足要求了 1.1.if标签 我们根据实体类的不 ...
- Cesium专栏-地形开挖(附源码下载)
Cesium Cesium 是一款面向三维地球和地图的,世界级的JavaScript开源产品.它提供了基于JavaScript语言的开发包,方便用户快速搭建一款零插件的虚拟地球Web应用,并在性能,精 ...
- CSAPP 3 程序的机器级表示
1 本章总述 1) 通过让编译器产生机器级程序的汇编表示, 学习了编译器及其优化能力, 以及机器.数据类型和指令集; 2) 学习了程序如何将数据存储在不同的内存区域中 -- 程序开发人员需要知道一个变 ...
- 循环语句for基本概述
循环语句for基本概述 01. for循环基础语法 for 变量名 in [ 取值列表 ]do 循环体done 02. for循环基本使用示例 #取值列表有多种取值方式,可以直接读取in后面的值,默认 ...
- 搭建 Optix 环境
我参考了 第0个示例 OptixHello 学习Optix的工程配置以及基本框架 的配置过程,该文对于 Optix 的框架介绍的很好,但是按照该文配置遇到了一些问题,我花费了一番功夫自己摸索终于配置好 ...
- java8-04-初识函数式接口
为什么用函数式接口 在函数式编程思想下,允许函数本身作为参数传入另一个函数.使用函数式接口实现"传递行为"的思想 ...
- Re-py交易
python在线反编译 https://tool.lu/pyc/ 获得源码 import base64 def encode(message): s = '' for i in message: x ...
- ASP.NET Core 中基于 API Key 对私有 Web API 进行保护
这两天遇到一个应用场景,需要对内网调用的部分 web api 进行安全保护,只允许请求头账户包含指定 key 的客户端进行调用.在网上找到一篇英文博文 ASP.NET Core - Protect y ...
- vue的基础概念和语法01
vue的特点和web开发中的常见高级功能 解耦视图和数据 可复用的组件 前端路由技术 状态管理 虚拟DOM 数据响应式 不是所有元素操作都Vue都会监听并实现数据响应式 //push方法:追加 thi ...