【Android Gradle 插件】Gradle 构建机制 ③ ( settings.gradle 生成 Settings 对象 | build.gradle 生成 Project 对象 )

2023-03-30 17:27:43 浏览数 (1)

文章目录

  • 一、settings.gradle 生成 Settings 对象
  • 二、build.gradle 生成 Project 对象

一、settings.gradle 生成 Settings 对象


settings.gradle 配置文件 最终会生成一个 org.gradle.api.initialization.Settings 对象 ,

include 就是该 Settings 对象中的方法 ,

代码语言:javascript复制
void include(String... var1);

rootProject 是调用 Settings 对象中的属性 , 对应的方法为

代码语言:javascript复制
ProjectDescriptor getRootProject();

org.gradle.api.initialization.Settings 配置 文档 : https://docs.gradle.org/current/javadoc/org/gradle/api/initialization/Settings.html ( 参考 【Android Gradle 插件】Gradle 参考文档收集 ( 持续更新 ) ★★ 博客 )

二、build.gradle 生成 Project 对象


在 Android Studio 工程中 , 除了在工程根目录有 build.gradle 构建脚本 作为 Gradle 构建的入口之外 , 在每个子模块 Module 中 , 也存在一个 build.gradle 构建脚本 , 这些都是 Gradle 构建的入口脚本 ;

build.gradle 构建脚本 是在配置阶段执行的脚本 ;

settings.gradle 配置文件 最终会生成一个 org.gradle.api.initialization.Settings 对象 , 与之对应的是 build.gradle 构建脚本 在运行时会生成 org.gradle.api.Project 对象 ;

org.gradle.api.Project 配置 ( build.gradle 根配置 ) 文档 : https://docs.gradle.org/current/javadoc/org/gradle/api/Project.html ( 参考 【Android Gradle 插件】Gradle 参考文档收集 ( 持续更新 ) ★★ 博客 )

在 Module 模块中的 build.gradle 构建脚本中调用 rootProject 就是调用的 最顶层 ( Android Studio 根目录中 ) 的 build.gradle 生成的 Project 对象 ;

在 最顶层的 build.gradle 构建脚本 中调用的方法 , 都是 Project 中的方法 ; 其中没有引入任何插件 ;

在 模块中的 build.gradle 构建脚本 中调用的方法 , 包括 Project 中的方法 , Android Gradle 插件中的方法 ;

在该构建脚本中引入了 Android Gradle 插件 ( com.android.application ) 和 Kotlin 插件 ( kotlin-android ) , 其中

  • android {} 脚本块中的配置 , 就是 Android Gradle 插件中定义的 ;
  • pluginsdependencies 配置 是 Gradle 官方定义的配置 , 也就是 Project 中的方法 ;
代码语言:javascript复制
plugins {
    id 'com.android.application'
    id 'kotlin-android'
}

0 人点赞