#什么是Gradle?
Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置。
#Gradle下载、安装与环境搭建
国内有很多可以下载Gradle的网站,比如Android Studio中文社区、AndroidDevTools等,实际上这些网站都有很多开发人员需要的工具、软件等。但是由于在国内Gradle官网还是能正常访问和下载资源,所以一般都选择在官网下载。
####Gradle下载地址
- Gradle官网下载地址:https://gradle.org/gradle-download/
- Android Studio中文社区Gradle下载地址:http://gradle.android-studio.org/
- AndroidDevTools Gradle下载地址:http://www.androiddevtools.cn/
####选择下载版本
**1. 全量包。**这个包包括了Gradle二进制文件(核心,用于构建项目)、资源(例子)、离线学习文档(Gradle使用教程)。
**2. 二进制包。**仅仅包括Gradle二进制文件。
**3. 资源包。**仅仅包括资源和离线学习文档。
作为初学者,建议下载全量包,该篇拙文以全量包为例。
####全量包目录结构分析(大部分)
- bin: 执行文件存放位置
- docs: DSL、Gradle API、用户指南教程目录和版本信息目录,使用浏览器打开相应的html即可进行学习。
- init.d: 用于配置全局信息。
- samples: 一些常用的实例,附代码。
- src: 资源目录,与资源包的subprojects目录内容一致。
####Gradle安装
Gradle没有安装文件,直接解压即可(建议解压到无中文、特殊符号的路径下),执行Gradle命令实际上是执行的是bin目录下的gradle.bat文件。
####Gradle环境变量配置步骤
1. 打开系统环境变量对话框,在系统变量一项新建系统变量。变量名为GRADLE_HOME
,变量值为Gradle解压后的文件夹路径。如下图:
2. 找到变量为Path的地方,进行编辑,在其变量值的末尾处增加%GRADLE_HOME%/bin;
意思是指定到上一步目录的bin文件夹。如下图:
**3.**测试环境是否配置成功
打开命令提示符,敲入命令
gradle -v
如下图,如果能显示Gradle版本等信息,即表明环境配置成功(此处省略了JDK的安装),抱歉,当前系统使用的Gradle是2.10
版本。如果使用上面下载的全量包则会显示3.00
版本。
注:配置环境变量的目的是使得在命令提示符可以直接使用Gradle命令,即执行bin目录下的gradle.bat文件。实际上,在不配置环境变量的情况下,使用命令提示符
cd
到bin目录也可以执行Gradle命令。
#构建脚本基础教程
Gradle中的所有东西都是围绕两个基本概念:项目和任务。对于项目,如果现在讲可能会有点远,先学习一下Gradle的基本脚本任务吧。
####执行第一个脚本文件-Hello Gradle
学习Gradle的任务,打印出“Hello Gradle”字样。
1. 在桌面创建一个文件夹名称为gradle(名称可自定义),并且创建一个文件,文件名为build.gradle(名称必须是这个),并且使用记事本软件打开,写入代码
task hello << {// 声明一个任务,任务名称为 hello
println 'Hello Gradle'
}
2. 打开命令提示符,cd
到gradle文件夹目录,接着执行命令
gradle hello
该命令表示执行一个Task(任务),任务名称为hello
。执行成功后会打印出Hello Gradle
字样。如下图:
- :hello 表示任务的名称为hello。
- Hello Gradle 表示输出的语句。
- BUILD SUCCESSFUL 表示执行成功。
这时候查看gradle文件夹,这里会自动生成文件夹.gradle
,该文件说明当前的目录可以被gradle构建,也可以说它属于gradle项目,类似git的.git
文件。
####了解Groovy
Groovy是一种基于JVM(Java虚拟机)的敏捷开发语言,它结合了Python、Ruby和Smalltalk的许多强大的特性,Groovy 代码能够与 Java 代码很好地结合,也能用于扩展现有代码。由于其运行在 JVM 上的特性,Groovy 可以使用其他 Java 语言编写的库。
在build.gradle脚本文件中,使用的是Groovy语言开发,所以如果想要更深沉次地了解build.gradle代码原理和拓展更加强大的功能,就首先需要学习该门语言。
#未完待续…