gradle中,最经常被使用的,一个task,一个是dependencies

1.Task声明

task默认是DefaultTask类, Task中有两个属性 group description,最佳实践是把两个属性都设置上

如下面:

//声明task的时候,就指定group和description,在声明task的时候,就声明doLast方法,
task makeReleaseVersion(group: 'versioning', description: 'Makes project a release version.') << {
version.release = true
ant.propertyfile(file: versionFile) {
entry(key: 'release', type: 'string', operation: '=', value: 'true')
}
} //在之后单独声明doFirst 和 doLast
printVersion.doFirst { println "First action" }
printVersion << { println "Last action" }

Task执行时,会依次执行doFirst 和 doLast 上面那个例子只能的<< 就是doLast的一种简写。

一个task可以声明多个doFirst和doLast方法,都会被执行,doFirst后面设置的越先执行,doFirst越后面设置的,越后执行。

2.Task之间的依赖

task直接可以相互依赖,但是不能形成闭环,否则会报错。

task first << { println "first" }
task second << { println "second" }
#声明方法时,设置依赖
task printVersion(dependsOn: [second, first]) << {
logger.quiet "Version: $version"
} task third << { println "third" }
#之后设置依赖 参数为可变参数,有多个,就继续往后面加
third.dependsOn('printVersion') #指明在first的task执行完成后,执行second的task
first.finalizedBy second

未完待续。。。

【三】Gradle中的Task的更多相关文章

  1. 深入理解gradle中的task

    目录 简介 定义task tasks 集合类 Task 之间的依赖 定义task之间的顺序 给task一些描述 task的条件执行 task rule Finalizer tasks 总结 深入理解g ...

  2. Gradle之Android Gradle Plugin 主要 Task 分析(三)

    [Android 修炼手册]Gradle 篇 -- Android Gradle Plugin 主要 Task 分析 预备知识 理解 gradle 的基本开发 了解 gradle task 和 plu ...

  3. gradle中的增量构建

    目录 简介 增量构建 自定义inputs和outputs 运行时API 隐式依赖 输入校验 自定义缓存方法 输入归一化 其他使用技巧 gradle中的增量构建 简介 在我们使用的各种工具中,为了提升工 ...

  4. gradle中使用嵌入式(embedded) tomcat, debug 启动

    在gradle项目中使用embedded tomcat. 最开始部署项目需要手动将web项目打成war包,然后手动上传到tomcat的webapp下,然后启动tomcat来部署项目.这种手动工作通常还 ...

  5. 在Gradle中使用jaxb的xjc插件

    jaxb,全称为Java Architecture for Xml Binding,是一种将java对象与xml建立起映射的技术.其主要提供两个功能,一是将java对象映射为xml,二是将xml映射为 ...

  6. Gradle中的buildScript代码块

    在编写Gradle脚本的时候,在build.gradle文件中经常看到这样的代码: build.gradle 1 2 3 4 5 6 7 8 9 buildScript { repositories ...

  7. Gradle中使用idea插件的一些实践

    如果你的项目使用了Gradle作为构建工具,那么你一定要使用Gradle来自动生成IDE的项目文件,无需再手动的将源代码导入到你的IDE中去了. 如果你使用的是eclipse,可以在build.gra ...

  8. [转] Gradle中的buildScript代码块

    PS: 在build script中的task apply plugin: 'spring-boot' 需要 classpath("org.springframework.boot:spri ...

  9. gradle中使用cobertura做代码覆盖(转)

    gradle很好用,但是默认是没有代码覆盖功能的,只好自己写.曾经在网上找到过别人的一段脚本,虽然也能用,但是有一些不爽的地方,一个原因是它不支持对层级工程中全部代码的覆盖,另一个原因是它用替换bui ...

随机推荐

  1. 黑苹果 macOS 10.13.6 17G66 安装 nVidia WebDriver

    目前很多N卡的WebDriver已经不支持macOS 10.14了,只能停留在10.13.6,苹果AppStore下载的 macOS High Sierra 10.13.6 版本号是17G66,遗憾的 ...

  2. linux 用户,组

    权限: 所谓的权限是,由用户启动的进程,或者由操作系统启动的进程,可以访问哪些文件,不可以访问哪些文件. 进程太多了,不可能为每个进程定义权限对吧,所以进程的权限来自于启动进程的用户. 用户有哪些权限 ...

  3. threejs 绘制辅助网格

    GridHelper.js可以帮助绘制一个xz平面网格,它没有提供更多的参数,所以不能用于生成xy网格. xy网格实现代码如下: var size = 6000; var divisions = 50 ...

  4. Hook Java API以获得MD5加密前数据

    Java实现MD5加密 在Java中,我们用MD5对数据进行加密,代码大概是这样的: import java.security.MessageDigest; import java.security. ...

  5. C++双指针滑动和利用Vector实现无重复字符的最长子串—力扣算法

    题目: 力扣原题链接:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/ 给定一个字符串, ...

  6. Cross-Site Scripting:Persistent 跨站点脚本:持久性

  7. Python3 pickle模块用法

    pickle(python3.x)和cPickle(python2.x的模块)相当于java的序列化和反序列化操作. 常采用下面的方式使用: import pickle pickle.dump(obj ...

  8. JavaScript 标准内置对象Promise使用学习总结

    Javascript标准内置对象Promise使用学习总结   by:授客 QQ:1033553122 1.   基础用法 var condition = true; let p = new Prom ...

  9. 完全卸载Android Studio(卸载得干干净净)

    步骤其实很简单,一共三步,但是每一步都需要完成,步骤如下: 打开控制面板或腾讯软件管家等执行常规的卸载操作. 找到SDK的安装目录手动删除SDK. 进入“C:\Users\<你的用户名下> ...

  10. 20190608_浅谈go&java差异(三)

    20190608_浅谈go&java差异(三) 转载请注明出处https://www.cnblogs.com/funnyzpc/p/10990703.html 第三节内容概览 多线程通讯(线程 ...