Gradle 入门到精通(二)

前言

根据前一篇我们学习了gradle的基础知识和项目结构,我们知道了一个内容,就是android 的项目使用的是gradle进行项目管理,项目中最重要的就是build.gradle setting.gradle。如果需要了解gradle的内容,就需要了解gradle的执行流程,也就是gradle的生命周期。

6 gradle生命周期分析

gradle的执行过程分成了三个部分

  • 1 初始化构建
  • 2 配置构建
  • 3 执行构建
  • 4 完成构建或者失败

6.1 初始化的工作

gradle 支持单一和多项目构建,在这个初始化的阶段,gradle就根据一些机制来判断当前构建的项目是单项目还是多项目。在android的插件里,初始阶段是根据setting.gradle 的配置来判断的。

include ':app', ':app2', ':libery','testeclipse2as'

上面的话是我的项目中的配,include代表需要编译的project,一共有4个项目需要参与编译。

一句到底,就是初始化阶段,就是去读取项目的setting.gradle。项目开始构建的时候,就会创建一个gradle对象,下面的是这个对象的api和属性。

https://docs.gradle.org/current/javadoc/org/gradle/api/invocation/Gradle.html#afterProject(org.gradle.api.Action)

6.2 配置构建的工作

在上面的初始化完成后,gradle知道了需要构建的各个项目,于是gradle会尝试读取每一个项目,并将每个项目的 build.gradle 变成一个project对象,这个project就对应了这个build.gradle文件,接着确认好项目的依赖关系,下面这个是project的文档。

https://docs.gradle.org/current/javadoc/org/gradle/api/Project.html

 gradle.afterProject( {
         project ->
    println("this projcet name is = "+project.getName())
    println("this projcet path is = "+project.getPath())
 })

afterProject 什么意思呢?就是当gradle初始化完成后,开始执行project后会执行这个方法,我们看到这个方法接收的是一个闭包。

project这个类里面有一个方法,叫afterEvaluate,这个方法是当这个project被执行的到时候就回调这个方法。

我们在某一个项目中的build.gradle文件中添加这个方法:

6.3 执行构建的工作

每个项目都有一个个的task(任务),每个任务之间都有相应的关系。执行构建的工作就是执行工作的任务,在执行任务的过程中,gradle会把这个任务的依赖的任务逐个执行。

上图显示的是当前项目所有的可执行的任务,如果我们选择build的菜单的话,就会选择执行构建里面的任务。我们可以使用下面的命令来查看

./gradlew tasks --all

包括我们在android studio上面点击的安装按钮。实际也是通过我们的install命令。

未完待续…..

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值