Gradle系列相关文章: 1、Gradle理论与实践一:Gradle入门
2、Gradle理论与实践二:Groovy介绍
3、Gradle理论与实践三:Gradle构建脚本基础
4、Gradle理论与实践四:自定义Gradle插件
5、Gradle配置subprojects和allprojects的区别:subprojects和allprojects的区别
Gradle入门
Gradle
一门DSL
(Domain Specific Language
,领域特定语言),Gradle
基于Groovy
语言,专门用来解决自动化构建。Gradle
可以认为是一个框架,负责定义流程和规则。而具体的编译工作则是通过插件的方式来完成的。比如编译 Java
有 Java
插件,编译 Groovy
有 Groovy
插件,编译 Android APP
有 Android APP
插件,编译 Android Library
有 Android Library
插件。
1、配置Gradle环境
1、下载Gradle
地址:https://gradle.org/
2、下载相应版本的Gradle
,我的笔记本是Mac
,下载的是v4.10.2
版本:
3、下载完之后,放到了/Users/mq/gradle-4.10.2/
目录下,要运行Gradle
,必须把GRADLE_HOME/bin
目录添加到环境变量PATH
的路径才可以,下面是配置Mac
的步骤:打开Mac
终端,输入: open -e .bash_profile
,打开.bash_profile
文件,接着编辑.bash_profile
文件:
GRADLE_HOME=/Users/mq/gradle-4.10.2;
export GRADLE_HOME
export PATH=$PATH:$GRADLE_HOME/bin
复制代码
如下:
保存一下.bash_profile
文件,最后在终端上执行source ~/.bash_profile
命令,更新.bash_profile
文件 4、最后验证一下结果,进入到Gradle
安装目录中,输入命令cd /Users/mq/gradle-4.10.2/
,接着输入gradle -version
或者gradle -v
,如果结果如下就是安装成功了:
mqdeMacBook-Pro:gradle-4.10.2 mq$ gradle -version
------------------------------------------------------------
Gradle 4.10.2
------------------------------------------------------------
Build time: 2018-09-19 18:10:15 UTC
Revision: b4d8d5d170bb4ba516e88d7fe5647e2323d791dd
Kotlin DSL: 1.0-rc-6
Kotlin: 1.2.61
Groovy: 2.4.15
Ant: Apache Ant(TM) version 1.9.11 compiled on March 23 2018
JVM: 1.8.0_151 (Oracle Corporation 25.151-b12)
OS: Mac OS X 10.13.6 x86_64
复制代码
2、Gradle之Hello World
找到Gradle
安装的目录,其中有个/bin
目录,我的是/Users/mq/gradle-4.10.2/bin
,打开bin
目录并创建一个build.gradle
文件,写入:
task hello << {
print 'hello world'
}
复制代码
在终端进入到对应的/bin目录,输入命令gradle -q hello
, 输出:
mqdeMacBook-Pro:test_gradle mq$ gradle -q hello
hello world
复制代码
一个简单的hello world
就完成了,说明:build.gradle
是Gradle
默认的构建脚本文件,执行命令时会默认加载当前目录下的build.gradle
文件。每个Gradle
构建都包含三个基本构建块:project、task、property
3、gradle 与gradlew的区别
gradle
版本会不断更新,多人协作开发时,每个人使用的版本可能会不同。而gradlew(wrapper)
可以看成是gradle的一层包装,让我们使用相同版本的gradle
进行构建,我们在gradle -> wrapper
中可以看到gradle-wrapper.properties
文件,制定了gradle
的版本。
注:有时候输入gradlew
命令时,会提示./gradlew: Permission denied
, 在控制台输入chmod +x gradlew
, 该命令的作用是是Linux
下去除执行权限。详情见: https://stackoverflow.com/questions/17668265/gradlew-permission-denied
4、Gradle命令介绍
- gradle projects 查看工程信息
- gradle tasks 查看任务信息
- gradle task name 执行
task
任务
5、Gradle 工作流程
以multi-project build
为例,Gradle
工作流程如下:
- 初始化阶段:首先解析
settings.gradle
Configration
阶段:解析每个Project
中的build.gradle
,解析过程中并不会执行各个build.gradle
中的task
。- 经过
Configration
阶段,Project
之间及内部Task
之间的关系就确定了。一个Project
包含很多Task
,每个Task
之间有依赖关系。Configuration
会建立一个有向图来描述Task
之间的依赖关系, 所有Project配置完成后,会有一个回调project.afterEvaluate,表示所有的模块都已经配置完了。 - 执行
Task
任务