Gradle第三方lib库下载 => 阿里云镜像/腾讯云镜像
https://mvnrepository.com/ 查看maven中的lib对应的在哪个仓库 (Repositories属性)
https://mirrors.cloud.tencent.com/nexus/repository/maven-public/ 腾讯云的仓库
https://developer.aliyun.com/mvn/guide aliyun的仓库
种种原因导致的第三方lib库下载失败,可以配置阿里云镜像仓库,如下:
buildscript {
repositories {
//腾讯云maven镜像
maven { url 'https://mirrors.cloud.tencent.com/nexus/repository/maven-public/'}
//阿里云maven镜像
maven { url 'https://maven.aliyun.com/repository/public' }
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
mavenLocal()
mavenCentral()
google()
jcenter()
...
}
}
allprojects {
repositories {
//腾讯云maven镜像
maven { url 'https://mirrors.cloud.tencent.com/nexus/repository/maven-public/'}
//阿里云maven镜像
maven { url 'https://maven.aliyun.com/repository/public' }
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
mavenLocal()
mavenCentral()
google()
jcenter()
...
}
}
Gradle的代理
如果你发现 ./gradlew 连接到了本机的代理服务器,这通常是因为环境变量或者 Gradle 配置中指定了代理设置。Gradle 会尝试使用这些代理设置来访问外部网络,包括下载依赖项、插件或者其他资源。
以下是一些可能导致 Gradle 使用代理的配置:
环境变量
如果你的系统环境变量中设置了 HTTP_PROXY、HTTPS_PROXY、http_proxy 或 https_proxy,Gradle 可能会使用这些变量指定的代理服务器。Gradle 属性
在 gradle.properties 文件中,你可以指定代理设置。这个文件可以位于项目目录或者 Gradle 用户主目录(通常是 ~/.gradle/)中。例如:
systemProp.http.proxyHost=your-proxy-host
systemProp.http.proxyPort=your-proxy-port
systemProp.https.proxyHost=your-proxy-host
systemProp.https.proxyPort=your-proxy-port
- 命令行参数
在运行 Gradle 命令时,你可以通过命令行参数指定代理设置,例如:
./gradlew build -Dhttp.proxyHost=your-proxy-host -Dhttp.proxyPort=your-proxy-port
如果你不希望 Gradle 使用代理,你需要检查并修改上述配置。如果是环境变量导致的,你可以在命令行会话中临时取消这些变量,或者从系统环境变量中永久移除它们。如果是 gradle.properties 文件中的设置,你可以编辑该文件并移除或注释掉相关的代理配置。
Gradle 查看本地的jar的依赖关系
-
命令行
在项目根目录下,执行./gradlew :app:dependencies(app为module名)
dependencies.png -
Android Studio
点击下图所示的Gralde任务“denpendencies”即可生成相应的依赖关系。
Android Studio's denpendencies.png
Gradle的dependencies树
先来谈谈以下三个符号(参考上面的dependencies树的截图),它们的目的仅用于格式化:
- +- - - 是依赖分支库的开始。
- | 标识还是在之前的依赖库中的依赖,显示它依赖的库。
- - - - 是依赖库的末尾。
- 星号(*) 在依赖库的末尾,意味着该库的进一步依赖关系不会显示,因为它们已经列在其他某个子依赖树中。
-
最重要的标识是 -> :
如果 Gradle 发现多个依赖库都依赖到同一个库但是不同版本,那么它必须做出选择。毕竟包含同一个库的不同版本是没有意义的。在这种情况下,Gradle 默认选择该库的最新版本。例如:
| +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*)
| +--- androidx.transition:transition:1.2.0
| | +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
| | +--- androidx.core:core:1.0.1 -> 1.7.0 (*)
| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)

