AS 中几个 Gradle 配置的作用

一个使用 Gradle 构建的 Android 项目中一般会涉及到三个 Gradle 相关的东西,分别是:

1,Gradle:是一个基于 Apache AntApache Maven 概念的项目 自动化建构 工具。它使用一种基于 Groovy特定领域语言 来声明项目设置,而不是传统的 XML 。当前其支持的语言限于 JavaGroovyScala ,计划未来将支持更多的语言。

2,Gradle Wrapper:Gradle 可以在没有安装 Gradle 的情况下使用,这时候就需要 Gradle Wrapper 了。Gradle Wrapper 其实就是一个脚本文件,它会在没有安装 Gradle 的情况下为我们下载 Gradle,之后我们就可以使用 gradlew 命令,像使用 gradle 一样来使用 Gradle 了。

3,Android Gradle Plugin:是一堆适合 Android 开发的 Gradle 插件的集合,主要由 Google 的 Android 团队开发,Gradle 不是 Android 的专属构建系统,但是有了Android Plugin for Gradle 的话,你会发现使用 Gradle 构建 Android 项目尤其的简单。

三者的官网如下:

Gradle Wrapper

1,gradle/wrapper/gradle-wrapper.jar Gradle Wrapper的主体功能包;

2,gradle/wrapper/gradle-wrapper.properties Wrapper 属性文件,文件主要指定了该项目需要什么版本的 Gradle,从哪里下载该版本的 Gradle,下载下来放到哪里:

1
2
3
4
5
6
#Tue Feb 19 10:23:45 CST 2019
distributionBase=GRADLE_USER_HOME // 指这个路径 -> ~/.gradle
distributionPath=wrapper/dists // distributionBase和distributionPath组合在一起,是解压 gradle 压缩包之后的文件存放目录
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists // zipStoreBase 和 zipStorePath 组合在一起,是下载 gradle 压缩包的存放目录
distributionUrl=https\:// services.gradle.org/distributions/gradle-4.10.1-all.zip //是要下载的gradle的地址,使用哪个版本的gradle

3,gradlew Unix的shell 脚本;

4,gradlew.bat Windows 的批处理文件;

Android Gradle Plugin

这个配置在项目根目录下的 build.gradle 中:

1
2
3
4
5
6
7
8
9
10
11
12
buildscript {
repositories {
maven { url "https://maven.aliyun.com/repository/google"}
}

dependencies {
classpath 'com.android.tools.build:gradle:3.3.2'

// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}

这里配置的 repositoriesdependencies 都是用于 gradlew 的脚本文件中的,和 allprojects 下面配置的 respositories 用处不一样,后者是用于整个项目的仓库。

1
2
3
4
5
6
7
allprojects {//用于整个项目的仓库
repositories {
google()
jcenter()
maven { url "https://jitpack.io" }
}
}

由于墙的原因,国外的仓库拉东西特别慢,要想体验好点可以用国内的阿里云镜像

附 gradlew 的一些常用指令:

1
2
3
4
5
6
7
8
gradlew -v //版本号
gradlew clean //清除工程目录下的build文件夹
gradlew build //检查依赖并编译打包(debug、release环境的包都打出来)
gradlew assembleDebug //编译并打Debug包
gradlew assembleRelease //编译并打Release的包
gradlew assembleBaiduRelease //编译并打Release的百度包(如果有渠道的话)
gradlew installRelease Release //模式打包并安装
gradlew uninstallRelease //卸载Release模式包

参考:

1,https://blog.csdn.net/u011054333/article/details/53999590

2,https://blog.csdn.net/u013553529/article/details/55011602

3,https://www.cnblogs.com/jiangxinnju/p/8229129.html