Gradle的快速入门
1.基础知识:
Gradle提供了:构建项目的框架。但是其中起作用的是Plugin。
Gradle在默认情况下提供了很多常用的Plugin。例如:构建Java的Plugin、还有war、Ear等。
Gradle不提供内建项目的生命周期管理,只是java Plugin向Project中添加了很多Task,这些Task依次执行,营造了如同Maven般构建项目的生命周期。
Gradle中涉及的主要领域对象主要是Project和Task。Project为task提供上下文,所有的Plugin要么向Project中添加用于配置的Property,要么向Project中添加不同的Task。
一个Task表示一个逻辑上较为独立的执行过程,比如:编译Java源码、拷贝文件、打jar包。
一个Task可以读取和设置Project的Property以完成特定的操作。
在测试文件夹下,创建一个build.gradle。内容如下:
task helloWord << {
println "Hello World!"
}
这里“<<”表示向helloWorld中加入执行代码:其实是groovy代码。
Gradle提供了一整套DSL,底层依赖和执行的是groovy。
可以在build.gradle目录下,控制台中执行:
gradle helloWorld
则会输出:
Starting a Gradle Daemon (subsequent builds will be faster) > Task :helloWorld
Hello World! BUILD SUCCESSFUL in 6s
上述的helloWorld类型是一个DefaultTask类型、是定义一个Task时的默认类型。我们也可以显示地生命Task的类型,或者自定义一个Task类型。
比如:定义一个用于文件拷贝的Task:
task copyFile(type: Copy) {
from 'xml'
into 'destination'
}
以上task的作用是将:xml文件拷贝到destination文件夹。不过文件夹是相对的,在build.grade目录。
Task也存在依赖关系(正是因为这个依赖关系表现出来了类似于maven的生命周期现象)
task taskB() {
println "i am taskB"
}
task taskA(dependsOn: taskB) {
println "i am taskA"
}
//这里被依赖task必须在依赖task前声明
Gradle提供了很多Task,在控制台使用:
gradle tasks //查看所有gradle提供的task
gradle tasks --a//查看所有的task,包括我们自己定义的task
输出如下:
buildEnvironment - Displays all buildscript dependencies declared in root projec
components - Displays the components produced by root project 'gradleLearning'.
dependencies - Displays all dependencies declared in root project 'gradleLearnin
dependencyInsight - Displays the insight into a specific dependency in root proj
dependentComponents - Displays the dependent components of components in root pr
help - Displays a help message.
model - Displays the configuration model of root project 'gradleLearning'. [incu
projects - Displays the sub-projects of root project 'gradleLearning'.
properties - Displays the properties of root project 'gradleLearning'.
tasks - Displays the tasks runnable from root project 'gradleLearning'.
可以看到默认提供的Task。
dependencies用于显示Project的依赖信息,
Projects用来显示所有Project,包括根Project和子Project,而properties则用于显示一个Project所包含的所有Property。
默认情况下,Gradle为Project添加了很多Property,可以使用如下命令查看:

以上Property中,allprojects:表示所有的Project,这里包含一个根Project,在多项目构建中,它将包含多个Project;
buildDir表示构建结果的输出目录。
我们自定义的helloWorld和copyFile也成为Project中的Property。
另外:Project还包括用于执行Ant命令的DefaultAntBuilder(Property名为ant)和Project的描述属性description。
Gradle的快速入门的更多相关文章
- Gradle学习系列之一——Gradle快速入门
这是一个关于Gradle的学习系列,其中包含以下文章: Gradle快速入门 创建Task的多种方法 读懂Gradle语法 增量式构建 自定义Property 使用java Plugin 依赖管理 构 ...
- Gradle用户指南(章9:Groovy快速入门)
Gradle用户指南(章9:Groovy快速入门) 你可以使用groovy插件来构建groovy项目.这个插件继承了java插件的功能,且扩展了groovy编译.你的项目可以包含groovy代码.ja ...
- Gradle学习系列之一——Gradle快速入门(转)
这是一个关于Gradle的学习系列,其中包含以下文章: Gradle快速入门 创建Task的多种方法 读懂Gradle语法 增量式构建 自定义Property 使用java Plugin 依赖管理 构 ...
- Gradle 1.12 翻译——第九章 Groovy快速入门
由于时间关系,没办法同时做笔记和翻译,关于Gradle的用户指南,本博客不再做相关笔记,而只对未翻译章节进行翻译并在此发表. 有关其他已翻译的章节请关注Github上的项目:https://githu ...
- 【转载】Gradle学习 第九章:Groovy快速入门
转载地址:http://ask.android-studio.org/?/article/17 To build a Groovy project, you use the Groovy plugin ...
- Realm for Android快速入门教程
介绍 如果你关注安卓开发的最新趋势,你可能已经听说过Realm.Realm是一个可以替代SQLite以及ORMlibraries的轻量级数据库. 相比SQLite,Realm更快并且具有很多现代数据库 ...
- Spring Boot 2.0 的快速入门(图文教程)
摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘要,谢谢! Spring Boot 2.0 的快速入门(图文教程) 大家都 ...
- Spring Boot 2.x基础教程:快速入门
简介 在您第1次接触和学习Spring框架的时候,是否因为其繁杂的配置而退却了?在你第n次使用Spring框架的时候,是否觉得一堆反复黏贴的配置有一些厌烦?那么您就不妨来试试使用Spring Boot ...
- Spring Boot 2.x 快速入门(下)HelloWorld示例详解
上篇 Spring Boot 2.x 快速入门(上)HelloWorld示例 进行了Sprint Boot的快速入门,以实际的示例代码来练手,总比光看书要强很多嘛,最好的就是边看.边写.边记.边展示. ...
随机推荐
- [转]Navicat for oracle 提示 cannot load oci dll,193的解决方法 orcale 11g
Navicat for oracle 提示 cannot load oci dll,193的解决方法 内网有一台windows server 2012,安装了Navicat 11.1.8 连接or ...
- 常用java开发工具快捷键
在这里列举一些开发中常用的快捷键 常用的idea的快捷键: 1.删除当前行:Ctrl+X 2.格式化代码:Ctrl+Alt+L 3.查看本页里面的内容:Ctrl+F 4.查看类的继承方式:Ctrl+H ...
- QT 利用ListWidget 和 StackedLayout 配合实现 分页 选项
1. 如图, 左边为listwidget,右边为StackedLayout, 通过listwidget的不同选项,可以使右边的不同页显示出来. 2. dialog.h #ifndef DIALOG_H ...
- 被人遗忘的MAX_FILE_SIZE文件上传限制大小参数
在文件上传中,我们经常会要求显 示用户上传文件大小,超过上传限制的文件就会不允许用户上传.虽然我们可以用程序去判断上传文件是否超过限制,但是其实我们的PHP程序是无法判断用户本 地文件大小的.所以等到 ...
- python基础3 - 变量的基本使用和命名
4.变量的基本使用 4.1 变量定义 在 Python 中,每个变量 在使用前都必须赋值,变量 赋值以后 该变量 才会被创建 等号(=)用来给变量赋值 = 左边是变量名 = 右边是存储在变量中的值 变 ...
- PyCharm 的升级、设置快捷方式
05. PyCharm 的升级以及其他 PyCharm 提供了对 学生和教师免费使用的版本 教育版下载地址:https://www.jetbrains.com/pycharm-edu/download ...
- Redis主键失效 - 原理及实现机制
[数据记录过期源码][http://blog.csdn.net/yuanrxdu/article/details/21233047] [http://blog.jobbole.com/71095/] ...
- GridView1 footer求和
// ShowFooter="True" private double sum = 0;//取指定列的数据和,你要根据具体情况对待可能你要处理的是int protected voi ...
- C++(十四) — 常用快捷键总结
快捷键设置方法:https://blog.csdn.net/wrzfeijianshen/article/details/53230789 https://blog.csdn.net/wrzfei ...
- js中scrollIntoView()的用法
一. 什么是scrollIntoView scrollIntoView是一个与页面(容器)滚动相关的API 二. 如何调用 element.scrollIntoView() 参数默认为true 参数为 ...