https://blog.csdn.net/chennai1101/article/details/103280304

https://blog.csdn.net/heng615975867/article/details/104800248

一、 Gradle构建的流程

1、Initialization初始化阶段

  • 解析整个工程中的所有project,构建所有的Project对应的project对象

2、Configuration配置阶段

  • 解析所有的projects对象中的task,构建好所有的task的拓扑图(有向无环图)

3、Execution执行阶段

  • 执行具体的task及其依赖的task

二、 Gradle构建的生命周期

Gradle生命周期分为Project与Gradle两个对象的生命周期。

执行android studio的build按钮,会打出以下日志。

Executing tasks: [:app:assembleDebug] in project D:\WorkRoot\CodeSpace\Company-LianYou\as\standard\LyRouterDemo

settings:执行settingsEvaluated...
settings:执行projectsLoaded...

> Configure project :
settings:执行LyRouterDemo beforeProject
根项目配置开始---
根项目里任务配置---
根项目配置结束---
settings:执行LyRouterDemo afterProject

> Configure project :app
settings:执行app beforeProject
子项目project ':app'beforeEvaluate回调...
APP子项目配置开始---
APP子项目里任务配置---
APP子项目配置结束---
settings:执行app afterProject
APP子项目afterEvaluate回调...

> Configure project :moduleA
settings:执行moduleA beforeProject
子项目project ':moduleA'beforeEvaluate回调...
组件A配置开始---
组件A里任务配置---
组件A配置结束---
settings:执行moduleA afterProject
组件A afterEvaluate回调...

> Configure project :moduleB
settings:执行moduleB beforeProject
子项目project ':moduleB'beforeEvaluate回调...
组件B配置开始---
组件B里任务配置---
组件B配置结束---
settings:执行moduleB afterProject
组件B afterEvaluate回调...

> Configure project :moduleBase
settings:执行moduleBase beforeProject
子项目project ':moduleBase'beforeEvaluate回调...
组件Base配置开始---
组件Base里任务配置---
组件Base配置结束---
settings:执行moduleBase afterProject
组件Base afterEvaluate回调...
settings: 执行projectsEvaluated...
> Task :xxx UP-TO-DATE
...
> Task :xxx UP-TO-DATE
构建结束...

从上面的日志可以看出,build相当于执行app的assembleDebug的task,gradle首先会执行Configuration配置阶段

1.先执行Gradle的生命周期settingsEvaluated、projectsLoaded,

2.后依次configure Pro,app,各个module,而各个Project执行的生命周期顺序又是

beforeProject

beforeEvaluate

afterProject

afterEvaluate

3.最后执行Gradle的生命周期projectsEvaluated

然后开始Execution执行阶段,执行 assembleDebug 依赖的其它的task。


0 条评论

发表回复

您的电子邮箱地址不会被公开。