Android Gradle

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的依赖关系

  1. 命令行
    在项目根目录下,执行 ./gradlew :app:dependencies (app为module名)

    dependencies.png

  2. Android Studio
    点击下图所示的Gralde任务“denpendencies”即可生成相应的依赖关系。


    Android Studio's denpendencies.png

Gradle的dependencies树

先来谈谈以下三个符号(参考上面的dependencies树的截图),它们的目的仅用于格式化:

  • +- - - 是依赖分支库的开始。
  • | 标识还是在之前的依赖库中的依赖,显示它依赖的库。
  • - - - 是依赖库的末尾。
  1. 星号(*) 在依赖库的末尾,意味着该库的进一步依赖关系不会显示,因为它们已经列在其他某个子依赖树中。
  2. 最重要的标识是 ->
    如果 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 (*)

参考:
Android 阿里云镜像整理
Android Gradle构建经验总结

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容