Gradle 入门到精通(二)
来源:互联网 发布:aria2 mac 编辑:程序博客网 时间:2024/06/05 16:45
前言
根据前一篇我们学习了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命令。
未完待续…..
- Gradle 入门到精通(二)
- Gradle 入门到精通(二)
- Gradle 入门到精通
- Gradle 入门到精通(一)
- Gradle 入门到精通(三)
- Gradle 入门到精通(四)
- Gradle 入门到精通(三)
- Gradle 入门到精通(四)
- Ajax入门到精通(二)
- mybatis 入门到精通(二)
- Raphaeljs入门到精通(二)
- ActiveMQ从入门到精通(二)
- Spring入门到精通(二)
- ActiveMQ从入门到精通(二)
- 二---JNI入门 - NDK从入门到精通(2)
- Google搜索从入门到精通 v4.0(二)
- JavaScript教程--从入门到精通(二)
- Google搜索从入门到精通 v4.0 (二)
- linux学习笔记(7)
- 浅谈linux几种定时函数的使用
- android scrollview嵌套listview,高度异常问题解决
- Python 装饰器
- ecmall 开发新模块
- Gradle 入门到精通(二)
- Apache Thrift入门简单实战(Java)
- 读取文件内容并转换为对象
- oracle两种临时表的创建及使用方法
- I2C电路:一种超级实用的3.3V/5V双向电平转换电路
- UVA
- gcd 延时方法
- 树链剖分原理
- java中的路径总结(转载)