美文网首页
阅读《Gradle 7连问,你应该知道这些》

阅读《Gradle 7连问,你应该知道这些》

作者: 普通的程序员 | 来源:发表于2022-02-21 13:03 被阅读0次

    原文地址
    https://mp.weixin.qq.com/s/tJtYp-gEzXk_Ns_DefD7tQ

    我学习的内容是,生命周期
    『Gradle 的执行分为三大阶段: Initialization -> Configuration -> Execution. 每个阶段都有自己的职责。

    7.1 Initialization阶段

    Initialization 阶段主要目的是初始化构建, 它又分为两个子过程, 一个是执行 Init Script, 另一个是执行 Setting Script。

    Init script 会读取全局脚本, 主要作用是初始化一些全局通用的属性, 例如获取 Gradle User Home 目录, Gradle version 等。

    而Setting Script就是我们上面提到的settings.gradle。

    7.2 Configuration阶段

    当构建完成 Initialization 阶段后, 将进入 Configuration 阶段. 这个阶段开始加载项目中所有模块的 Build Script. 所谓 "加载" 就是执行 build.gradle(.kts) 中的语句, 根据脚本代码创建对应的 task, 最终根据所有 task 生成对应的依赖图. 我们上面说过"Gradle核心模型是一个 Task 组成的有向无环图(Directed Acyclic Graphs)" 吗? 这个任务依赖图就是在这个阶段生成的。

    需要注意的是,Configuration阶段各个模块的加载顺序是无序的,跟依赖关系与加入顺序都没有关系。

    7.3 Execution阶段

    当完成任务依赖图后, Gradle 就做好了一切准备, 然后进入 Execution 阶段. 这个阶段才真正进行编译和打包动作. 对于 Java 而言是调用 javac 编译源码, 然后打包成 jar. 对于 Android 而言则更加复杂些. 这些差异来源于我们应用的插件. 总得来说,就是开始执行task了』

    相关文章

      网友评论

          本文标题:阅读《Gradle 7连问,你应该知道这些》

          本文链接:https://www.haomeiwen.com/subject/gdxilrtx.html