From 16cec8ca89790df776fc3e5537659d9a0eb3a3a1 Mon Sep 17 00:00:00 2001 From: Omooo <869759698@qq.com> Date: Sat, 29 Feb 2020 20:06:11 +0800 Subject: [PATCH] =?UTF-8?q?Update=20=E8=AF=BB=E4=B9=A6=E7=AC=94=E8=AE=B0?= =?UTF-8?q?=E4=B9=8B=E4=B8=80.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Android Gradle 权威指南/读书笔记之一.md | 33 ++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/blogs/Android/Gradle/Android Gradle 权威指南/读书笔记之一.md b/blogs/Android/Gradle/Android Gradle 权威指南/读书笔记之一.md index 1f7d44b..7234639 100644 --- a/blogs/Android/Gradle/Android Gradle 权威指南/读书笔记之一.md +++ b/blogs/Android/Gradle/Android Gradle 权威指南/读书笔记之一.md @@ -18,6 +18,7 @@ - 任务分组和描述 - 任务执行分析 - 任务的 OnlyIf 断言 + - 执行其他 gradle 文件定义的方法 #### 思维导图 @@ -457,4 +458,34 @@ myCustomTask.onlyIf{ 加一个参数就好啦,就可以控制任务是否执行了。 -命令行中 -P 的意思是为 Project 指定 K-V 格式的属性键值对,使用格式为 -PK=V。 \ No newline at end of file +命令行中 -P 的意思是为 Project 指定 K-V 格式的属性键值对,使用格式为 -PK=V。 + +##### 执行其他 gradle 文件里面的方法 + +有时候,我们想要在当前 gradle 文件里面,去执行其他 gradle 里面定义的方法。 + +比如我们想要在 app.gradle 定义一个 Task,去执行放在根目录下的 dep.gradle 文件里面定义的方法,做法如下: + +dep.gradle: + +```groovy +gradle.ext { + showDep = this.&showDep +} +def showDep() { + println("showDep") +} +``` + +app.gradle: + +```groovy +apply from: "../dep.gradle" +task("appTask") { + doLast { + println("appTask") + gradle.ext.showDep() + } +} +``` +