概述
Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,目前也增加了基于Kotlin语言的kotlin-based DSL,抛弃了基于XML的各种繁琐配置。它通过组织执行一系列的Task来完成自动化的构建,减少构建项目时的复杂度,而Android Studio也使用Gradle作为基础的构建工具。
Gradle 项目结构分析
在了解Gradle build的生命周期之前,先简单说一下Gradle的项目层次,新建一个Android工程,可以看到项目的结构大致如下
Gradle的实质是配置脚本,执行一种类型的配置脚本时就会创建一个关联的对象,譬如执行build.gradle脚本就会创建一个Project对象,这个对象其实就是Gradle的代理对象
settings.gradle
settings.gradle是用于配置整个项目结构的脚本,对应Gradle中的Settings对象,其中最常用的几个方法:
include ':app'
project(':app').projectDir = new File("./...") // 可以指定子模块的目录位置
rootProject/build.gradle
位于项目根目录的build.gradle脚本,负责项目整体的配置,对应一个Project对象,其中最常用的几个方法
buildscript {
// 配置构建脚本
repositories {
// 构建脚本的仓库
google()
jcenter()
}
dependencies {
// 构建脚本的依赖,默认依赖Android Gradle Plugin,也可以添加自定义的Plugin
classpath "com.android.tools.build:gradle:3.6.0"
}
}
allprojects {
repositories {
google()
jcenter()
}
}
mudule/build.gradle
位于子模块的build.gradle脚本,负责这个模块的配置,也对应一个Project对象,类似根目录的build.gradle。
// 引入Android Gradle Plugin,如果是library,引入'com.android.library'</