Android Plugin DSL Reference 参考文档 : Android Plugin 2.3.0 DSL Reference
1、基本作用
根目录下的 build.gradle 是 Android 工程的默认的顶层 Gradle 构建脚本 , 注意是根目录下 , 与 Module 目录下的 build.gradle 进行区分
该脚本中的配置应用于所有子工程 , 配置如下类型的信息 :
- 代码仓库配置 :
-
repositories { google() mavenCentral() jcenter() // Warning: this repository is going to shut down soon }
- Android Gradle 插件版本依赖 : 配置的依赖会从上面的 google() , mavenCentral() , jcenter() 仓库中查找 ; 一般是从 jcenter() 中查找 ;
-
dependencies { classpath "com.android.tools.build:gradle:4.2.1" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files }
- 其它指令 :
-
task clean(type: Delete) { delete rootProject.buildDir }
2、远程仓库配置
- 可配置的仓库都定义在
RepositoryHandler
接口中 , 可以指定 jcenter , ivy , flatDir , google , mavenCentral , mavenLocal , maven 等类型的仓库 ; -
public interface RepositoryHandler extends ArtifactRepositoryContainer { FlatDirectoryArtifactRepository flatDir(Map<String, ?> var1); FlatDirectoryArtifactRepository flatDir(Closure var1); FlatDirectoryArtifactRepository flatDir(Action<? super FlatDirectoryArtifactRepository> var1); ArtifactRepository gradlePluginPortal(); ArtifactRepository gradlePluginPortal(Action<? super ArtifactRepository> var1); MavenArtifactRepository jcenter(Action<? super MavenArtifactRepository> var1); MavenArtifactRepository jcenter(); MavenArtifactRepository mavenCentral(Map<String, ?> var1); MavenArtifactRepository mavenCentral(); MavenArtifactRepository mavenCentral(Action<? super MavenArtifactRepository> var1); MavenArtifactRepository mavenLocal(); MavenArtifactRepository mavenLocal(Action<? super MavenArtifactRepository> var1); MavenArtifactRepository google(); MavenArtifactRepository google(Action<? super MavenArtifactRepository> var1); MavenArtifactRepository maven(Closure var1); MavenArtifactRepository maven(Action<? super MavenArtifactRepository> var1); IvyArtifactRepository ivy(Closure var1); IvyArtifactRepository ivy(Action<? super IvyArtifactRepository> var1); @Incubating void exclusiveContent(Action<? super ExclusiveContentRepository> var1); }
3、依赖配置
- 在依赖配置中 , 最常见的就是配置 Android Gradle 插件版本 ;
- 依赖配置如下 :
-
buildscript { dependencies { classpath "com.android.tools.build:gradle:4.2.1" } }
3、所有子模块配置
-
所有子模块配置 , 最常见的是为所有子模块配置远程仓库 ;
allprojects { repositories { google() mavenCentral() jcenter() // Warning: this repository is going to shut down soon } }
4、task clean 任务
-
最后定义了一个 task 任务 , type 表示任务类型 , 该任务是在 Delete 任务的基础上 , 执行额外附加的任务 ;
task clean(type: Delete) { delete rootProject.buildDir }
该任务的作用是 , 删除根目录下的 build 目录 ;