project 和task
project和task是Gradle中最重要的两个概念。每一次构建,都至少包括一个project,每一个项目又包括至少一个task。相信大家都对Android Studio生成的项目结构已经很熟悉了。一般情况下,在项目的root的目录下会有一个build.gradle文件,这个文件就是代表的一个project,这个文件可以使得新增模块,或者共用插件变得简单一些。然后项目下的每一个module一般也会对应一个build.gradle文件。
task又是定义在build.gradle中的。当初始化构建过程时,Gradle会基于build文件组装project和task对象。一个task对象又包含一系列的动作,这些动作会安装一定的顺序执行。一个单独的动作就是一段待执行的代码块。是不是和java中的方法类似?在以后的文章中可以深刻的体会到。
Build的生命周期
一旦某个tasks被执行,那么它不会再次执行了,不包含依赖的Tasks总是优先执行,一次构建将会经历下列三个阶段:
1.初始化阶段:project实例在这儿创建,如果有多个模块,即有多个build.gradle文件,多个project将会被创建。
2.配置阶段:在该阶段,build.gradle脚本将会执行,为每个project创建和配置所有的tasks。
3.执行阶段:这一阶段,gradle会决定哪一个tasks会被执行,该tasks会被执行完全依赖于开始构建时传入的参数和当前所在的文件夹位置。
build.gradle配置文件
基于grade构建的项目通常至少有一个build.gradle,现在就来看看Android的root目录下的build.gradle:
uildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.3'
// NOTE: Do not place your application