android studio 使用gradle wrapper来创建项目。
gradle文件夹和gradlew那几个文件就是gradle wrapper的文件。
.gradle后缀名的文件是gradle的配置文件。
gradle wrapper的优点之一就是可以自定义下载的gradle的版本,如果是团队协作的话,这个功能就非常方便,简单设置即可统一团队的构建工具版本。
依赖管理
这是我们使用构建工具的主要目的之一了,gradle的依赖项仅需一行。
dependencies {
testImplementation 'junit:junit:4.13'
implementation 'com.google.code.gson:gson:2.8.6' //gradle的依赖项仅需一行
}
gradle依赖的粒度控制精细,有以下几种scope:
- implementation,默认的scope。implementation的作用域会让依赖在编译和运行时均包含在内,但是不会暴露在类库使用者的编译时。举例,如果我们的类库包含了gson,那么其他人使用我们的类库时,编译时不会出现gson的依赖。
- api,和implementation类似,都是编译和运行时都可见的依赖。但是api允许我们将自己类库的依赖暴露给我们类库的使用者。
- compileOnly和runtimeOnly,这两种顾名思义,一种只在编译时可见,一种只在运行时可见。而runtimeOnly和Maven的provided比较接近。
- testImplementation,这种依赖在测试编译时和运行时可见,类似于Maven的test作用域。
- testCompileOnly和testRuntimeOnly,这两种类似于compileOnly和runtimeOnly,但是作用于测试编译时和运行时。
相关配置和缓存
可以在用户目录的.gradle文件夹下看到gradle的相关配置和缓存。
wrapper下载的gradle存放位置是wrapper/dists。
依赖缓存在caches\modules-2\files-2.1文件夹下。