一、Project
Gradle
的执行流程
Initialization
初始化阶段 (解析整个工程中的所有Project,构建所有的Project对应的project对象)
Configuration
配置阶段 (解析所有projects对象中的task,构建好所有task的拓扑图(有向无环图))
Execution
执行阶段(执行具体的task及其依赖的task)
settings.gradle
用于解析生成Project
build.gradle
用于判断是不是一个Project
每个Project都是在build.gradle中去配置和管理的,这些build.gradle最终会被Gradle编译为Project字节码
1.编写settings.gradle
rootProject.name = 'gradle-project'
include 'gradle-project-1'
include 'gradle-project-2'
include 'gradle-project-3'
2.创建目录结构
可以通过 gradle wrapper
生成 gradle
目录下文件,gradle-wrapper.properties
用于指定gradle版本
3.使用gradle projects查看
使用 gradle projects
命名查看project
二、Project相关api
可以查看org.gradle.api.Project的属性和方法
- Project里含有一个容器TaskContainer接口.用与创建,存取及管理所有的Task
- Project里含有一个容器ConfigurationContainer接口,来管理对应的项目配置
- Project里含有一个DependencyHandler接口用与管理项目的依赖
- Project里含有一个RepositoryHandler接口用来注册和管理依赖所需的Repository
1.project属性
可用同通过ext属性定义额外的属性
属性名 | 作用 |
---|---|
group | 当前项目的组名 |
name | 当前项目的名字 |
version | 当前项目的版本号,默认值:unspecified |
parent | 当前项目的父项目 |
project | 当前项目的实例 |
allprojects | 当前项目及其所有子项目的集合 |
rootProject | 当前项目层次结构中的根项目 |
subprojects | 当前项目的子项目集 |
defaultTasks | 当前项目的默认任务的名字集当前构建没有提供任务名时会执行这些默认任务 |
tasks | 当前项目的任务集 |
buildDir | 当前项目的编译目录(自动生成)默认值 porjectDir/build |
path | 当前项目的路径(绝对路径) |
logger | 当前项目的日志器,可以用来在 build 文件中写日志 |
2.project方法
可以通过groovy语法定义额外的方法
方法名 | 作用 |
---|---|
apply | 应用插件或脚本 |
task | 定义一个任务 |
project | 获取指定项目的 project 对象 |
allprojects | 配置当前项目以及它的每个子项目 |
subprojects | 配置当前项目的所有子项目 |
beforeEvaluate | 添加一个闭包,她会在项目开始评估前立即执行 |
afterEvaluate | 可以添加一个闭包,它会在项目完成评估后立即执行。当执行属于该项目的构建文件时,会通知此类监听器。 |
configure | 通过闭包配置对象集合 |
file | 解析文件 |
hasProperty | 判断当前项目有没有指定属性 |
setProperty | 给属性设置值 |
findProperty | 找特定属性,返回它的值,如果没有,返回null |
copy | 拷贝特定文件 |