文章目录
Gradle 是一个基于 Apache Ant 和 Apache Maven 概念的自动化构建工具,它使用一种基于 Groovy 的特定领域语言(DSL)来声明项目设置,而不是传统的 XML。Gradle 提供了更灵活和强大的方式来构建、测试、打包和部署应用程序,它支持多种编程语言和平台,包括 Java、Kotlin、Groovy、Android、C/C++ 等。
Gradle 的优势
- 灵活性:Gradle 允许你以编程方式定义构建逻辑,这提供了比传统 XML 配置更高的灵活性。
- 性能:Gradle 使用守护进程和增量构建来加速构建过程。
- 多项目构建:Gradle 支持在一个构建脚本中定义多个项目,并允许你跨项目共享配置和依赖项。
- 强大的依赖管理:Gradle 提供了灵活的依赖管理机制,支持从 Maven 仓库、Ivy 仓库和其他类型的仓库中解析依赖项。
- 社区支持:Gradle 有一个活跃的社区,提供了大量的插件和文档资源。
AS查看gradle-plugin版本及gradle版本(图形)
查看gradle-plugin版本及gradle版本(配置文件)
- 进入项目级bulid.gradle(不是app级)
- gradle\wrapper\gradle-wrapper.properties
配置文件分析
- gradle-plugin
这里主要解决第一次构建项目时可能出现的问题,不考虑具体项目配置,涉及到的配置文件就上图两个。
项目级build.gradle:项目全局的gradle构建脚本(下面是uniapp 安卓SDK实例)
(注意不要找到app文件夹里的那个了)
java
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
maven {url 'https://maven.aliyun.com/repository/google'}
maven {url 'https://maven.aliyun.com/repository/gradle-plugin'}
maven {url 'https://maven.aliyun.com/repository/public'}
}
dependencies {
classpath 'com.android.tools.build:gradle:4.1.1'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
maven {url 'https://maven.aliyun.com/repository/google'}
maven {url 'https://maven.aliyun.com/repository/gradle-plugin'}
maven {url 'https://maven.aliyun.com/repository/public'}
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
- gradle
repositories中配置的是仓库地址,Android Studio会从这里的地址下载gradle等工具。
gradle-wrapper.properties:配置gradle
java
#Mon Dec 28 18:07:31 CST 2020
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-all.zip
解决gradle下载失败、版本错乱等问题。
- 配置国内源
首先配置国内的源,这里用阿里云的仓库
https://developer.aliyun.com/mvn/guide
在build.gradle文件中把 google() 和 jcenter() 注释掉,并添加
gradle版本和plugin版本是有对应关系的,版本错误的话可能会发生异常,具体对应关系见网址https://developer.android.com/studio/releases/gradle-plugin
(注:需要科学上网才能打开)
这里贴一个当前最新的对应关系表,如果不追求最新版的话应该够用了。
插件版本 所需的最低 Gradle 版本
plugin(AGP) | gradle |
---|---|
8.4 (alpha) | 8.6-rc-1 |
8.3 | 8.4 |
8.2 | 8.2 |
8.1 | 8.0 |
8.0 | 8.0 |
7.4 | 7.5 |
7.3 | 7.4 |
7.2 | 7.3.3 |
7.1 | 7.2 |
7.0 | 7.0 |
4.2.0+ | 6.7.1 |
4.1.0+ | 6.5+ |
4.0.0+ | 6.1.1+ |
3.6.0 - 3.6.4 | 5.6.4+ |
3.5.0 - 3.5.4 | 5.4.1+ |
3.4.0 - 3.4.3 | 5.1.1+ |
3.3.0 - 3.3.3 | 4.10.1+ |
3.2.0 - 3.2.1 | 4.6+ |
3.1.0+ | 4.4+ |
3.0.0+ | 4.1+ |
2.3.0+ | 3.3+ |
2.1.3 - 2.2.3 | 2.14.1 - 3.5 |
2.0.0 - 2.1.2 | 2.10 - 2.13 |
1.5.0 | 2.2.1 - 2.13 |
1.2.0 - 1.3.1 | 2.2.1 - 2.9 |
1.0.0 - 1.1.3 | 2.2.1 - 2.37.3 7.4 |
- 手动下载gradle
如果因为某些原因无法自动下载或解压gradle,可以手动进行下载并自行放置。
gradle文件所在的地址是
C:\Users\用户名\.gradle\wrapper\dists
打开以后就会看见不同版本的gradle
其中bin后缀的是只包含二进制文件,all后缀的包括二进制文件、文档和源代码,根据自己的需求进行选择。
进入任意一个gradle目录中都会有一个乱码文件夹,这个是必须的,如果gradle无法下载,也点击Android Studio中的Sync按钮让它去生成这个乱码文件夹,好让我们去手动放置。
选择好gradle版本后,开始手动下载,官方地址:https://gradle.org/releases/
以我使用的8.7为例
binary-only就是bin版本,complete就是all版本,自行选择进行下载即可。
下载完成后会得到一个zip压缩包,注意不要解压。把压缩包放到刚才提到的乱码文件夹中。
接下来重启Android Studio,它会自动进行解压并完成配置。
如果重启后还是在下载gradle文件,这时候就去看看是不是bin和all对应不上,比如项目需要bin版本的gradle,而你放了一个all版本的压缩包进去,那它当然还会下载。
这时候进入gradle-wrapper.properties 文件中,最后一行把bin改成all就解决问题了。