Gradle Settings 类的学习
2023-09-27 14:21:17 时间
# 任务
- 了解 Settings 类作用于 Gradle 构建的哪个阶段?
- 了解 Settings 类与 settings.gradle 的关系
- 了解和使用 inlcude 方法
- hook 初始化阶段的监听器
- 总结
# Settings 类作用于 Gradle 构建的哪个阶段?
前面介绍过,Gradle 构建涉及到三个阶段,分别是 初始化阶段
,配置阶段
,执行阶段
。在 Gradle 中就是通过执行 Settings
类来完成构建的 初始化阶段
。
# Settings 类与 settings.gradle 的关系
就像大家所知的build.gradle
文件是对应于Project
的,那么settings.gradle
对应于 Settings
类啦。
# includ 方法
在 Setting 类中,最重要的一个方法就是
include
方法了。
方法名 | 作用 |
---|---|
void include(String... projectPaths); | 添加需要参与构建的Project,接受一个可变参数,每一个值是一个Project路径 |
这里有一个需要注意的点:可变参数的路径
并不是 project 的文件路径,它指的是当前 project
相对于根project
的路径。
例如:在一个 AS 的示例工程中,有如下一些 module ,那么每一个 project 的 path 该如何表示呢,下面我列举一个示例来表示一下:
GradleDemo(根Project) -> path = "" app(子Project) -> path = ":app" subapp(app的子project) -> path = ":app:subapp" common(子Project) -> path = ":common" play(子Project) -> path = ":play"
从上面的 module 的结构来看, GradleDemo 为根project ,它的路径是 :
,而对于 app
module 来说,它的 path 是 :app
。subapp
是 app project 的子 project ,它的 path 是:app:subapp
。所以基于上面的理解,每一个 project 的路径都是相对于根project
而言的,路径的分隔符是 :
而不是\
。
下面是 project路径 的格式:
:路径1:路径2
说了那么多,现在来看看如何使用 include 方法咯:
- 添加一个 project
//添加:app这个module参与构建 include ":app"
- 添加多个 project
//include 接受可变参数,使用 , 逗分开不同的路径 include ':app',':common'
# hook 初始化阶段的监听器
在初始化阶段中主要做的事有两件:
- 确定哪些是需要构建的 project 。
- 为所有的参与构建的 Project 创建对象。
那么下面列举是在执行 settings.gradle 脚本的监听回调:
gradle.settingsEvaluated { println "【settings.gradle】 初始化执行结束" } gradle.projectsLoaded { Gradle gradle -> println "【settings.gradle】 所有在 settings 中 include 的 Project 对象都创建完成了" }
# 总结
虽然 Settings 类很简单,但是我们不能忽略的它的作用哦,毕竟它负责了 Gradle 构建的第一个阶段。在日常开发中,我们主要使用到的就是 include
方法了,所以本文也只演示了该方法的作用与使用。
相关文章
- 在Eclipse IDE使用Gradle构建应用程序
- Gradle Transform API
- 转: Gradle:Gradle入门
- IDEA中Gradle插件的使用
- Gradle build daemon disappeared unexpectedly (it may have been killed or may have crashed)
- Gradle查看Project中的所有 Task
- 使用Gradle自动创建Java项目结构
- Gradle Maven 依赖管理
- Gradle学习系列之一——Gradle快速入门
- 如何用Gradle创建Docker镜像
- 查看安卓项目gradle库依赖,解决依赖库冲突问题
- build.gradle 中获取项目根目录
- Gradle plugin requires Java 11 to run. You are currently using Java 1.8.
- Eclipse集成Gradle 【Eclipse在线安装Gradle插件方法】
- gradle 下载慢的问题解决
- 我的Android进阶之旅------>解决Error:Could not find property 'compile' on org.gradle.api.internal.artifacts.