首页 > 其他分享 >Gradle配置全局替换国内镜像(2024版)

Gradle配置全局替换国内镜像(2024版)

时间:2024-08-25 09:51:32浏览次数:5  
标签:repo URL Gradle 2024 url ALIYUN 镜像

Gradle配置全局替换国内镜像(2024版)

Gradle作为一款广泛使用的自动化构建工具,在处理Java、Kotlin等项目的依赖管理和构建过程中起着至关重要的作用。然而,由于网络环境的差异,直接使用Gradle默认的国际仓库可能会导致下载速度缓慢甚至连接失败。为了解决这一问题,配置Gradle使用国内镜像是一个有效的解决方案。以下将详细介绍如何在2024年配置Gradle全局替换国内镜像。

一、环境准备

在进行Gradle配置之前,请确保你的开发环境已经安装了Gradle。如果尚未安装,可以从Gradle官网下载适合你操作系统的Gradle版本并安装。同时,了解你的操作系统和Gradle的当前版本将有助于后续的配置过程。

二、配置环境变量

为了全局替换Gradle的镜像源,我们通常需要配置GRADLE_USER_HOME环境变量,该变量指定了Gradle用户目录的位置,Gradle会在此目录下存储下载的依赖包和其他相关文件。

  • Windows系统

    • 右键点击“此电脑”或“我的电脑”,选择“属性”。
    • 点击“高级系统设置” -> “环境变量”。
    • 在“系统变量”区域点击“新建”,变量名填写GRADLE_USER_HOME,变量值填写你希望Gradle用户目录的路径,例如D:\gradle_repo
    • 点击“确定”保存设置。
  • macOS和Linux系统

    • 打开终端。
    • 使用echo $HOME查看当前用户的主目录。
    • 你可以在主目录下创建一个新的文件夹作为Gradle用户目录,例如mkdir ~/gradle_repo
    • 然后,在~/.bash_profile~/.zshrc或你的shell配置文件中添加一行export GRADLE_USER_HOME=~/gradle_repo
    • 保存文件并运行source ~/.bash_profile(或相应的shell配置文件)使更改生效。

三、创建并配置init.gradle文件

GRADLE_USER_HOME目录下(即你设置的Gradle用户目录),创建一个名为init.gradle的文件。这个文件将包含用于全局替换Gradle镜像源的Gradle脚本。

allprojects {
    repositories {
        def ALIYUN_REPOSITORY_URL = 'https://maven.aliyun.com/repository/public'
        def ALIYUN_JCENTER_URL = 'https://maven.aliyun.com/repository/jcenter' // 注意:jcenter已停止服务,此处仅为示例
        def ALIYUN_GOOGLE_URL = 'https://maven.aliyun.com/repository/google'
        def ALIYUN_GRADLE_PLUGIN_URL = 'https://maven.aliyun.com/repository/gradle-plugin'

        all { ArtifactRepository repo ->
            if (repo instanceof MavenArtifactRepository) {
                def url = repo.url.toString()
                if (url.startsWith('https://repo1.maven.org/maven2/')) {
                    project.logger.lifecycle "Repository ${repo.url} replaced by ${ALIYUN_REPOSITORY_URL}."
                    remove repo
                }
                if (url.startsWith('https://jcenter.bintray.com/')) {
                    // 注意:由于jcenter已停止服务,此部分可能不再需要
                    project.logger.lifecycle "Repository ${repo.url} replaced by ${ALIYUN_JCENTER_URL}."
                    remove repo
                }
                if (url.startsWith('https://dl.google.com/dl/android/maven2/')) {
                    project.logger.lifecycle "Repository ${repo.url} replaced by ${ALIYUN_GOOGLE_URL}."
                    remove repo
                }
                if (url.startsWith('https://plugins.gradle.org/m2/')) {
                    project.logger.lifecycle "Repository ${repo.url} replaced by ${ALIYUN_GRADLE_PLUGIN_URL}."
                    remove repo
                }
            }
        }

        maven { url ALIYUN_REPOSITORY_URL }
        // 注意:由于jcenter已停止服务,以下行可能需要注释或删除
        // maven { url ALIYUN_JCENTER_URL }
        maven { url ALIYUN_GOOGLE_URL }
        maven { url ALIYUN_GRADLE_PLUGIN_URL }
    }
}

请注意,由于jcenter已停止服务,因此在上述脚本中有关jcenter的部分可能不再需要,或者你需要将其替换为其他可用的仓库地址。

五、验证Gradle配置

init.gradle文件配置完成后,你需要验证Gradle是否正确地使用了配置的国内镜像源。这可以通过查看Gradle构建日志或尝试构建项目来实现。

  1. 查看构建日志
    当你运行Gradle构建任务时(如gradle build),Gradle会在控制台输出构建日志。在日志中,你可以搜索“replaced by”这样的关键词来查找Gradle是否已经将默认仓库替换为你配置的国内镜像。

  2. 尝试构建项目
    在命令行中,切换到你的项目目录,并运行Gradle构建命令(如gradle build)。如果Gradle能够正常下载依赖并构建项目,那么说明你的配置是成功的。

六、处理依赖问题

尽管使用了国内镜像,但在构建过程中仍然可能会遇到依赖问题。这可能是因为某些依赖项在国内镜像中不存在,或者版本不兼容。以下是一些处理依赖问题的建议:

  • 检查依赖版本:确保你项目中使用的依赖项版本在国内镜像中是可用的。如果某个依赖项的版本过旧或已被废弃,尝试更新到最新版本。
  • 手动下载依赖:如果某个依赖项在国内镜像中找不到,你可以尝试从其他可靠的源手动下载该依赖项,并将其放置在项目的本地仓库中。
  • 使用多个镜像源:除了配置一个主要的国内镜像外,你还可以在init.gradle文件中添加其他备选的国内镜像源,以增加依赖项的可获取性。

七、继续项目的生产流程

一旦Gradle配置并验证无误,你就可以继续项目的生产流程了。这通常包括以下几个步骤:

  1. 代码开发:继续按照项目的需求进行代码开发。
  2. 单元测试:编写并运行单元测试以确保代码的正确性和稳定性。
  3. 集成测试:在模拟的生产环境中进行集成测试,以确保各个模块之间的协同工作正常。
  4. 构建和部署:使用Gradle构建项目,并将构建产物部署到生产环境中。
  5. 监控和维护:在生产环境中监控项目的运行状态,并根据需要进行维护和更新。

八、注意事项

  • 定期更新Gradle和插件:为了保持项目的稳定性和安全性,建议定期更新Gradle本身以及项目中使用的插件。
  • 备份关键数据:在进行重要更改(如更新Gradle版本或依赖项)之前,请确保备份了项目的关键数据。
  • 关注安全公告:关注Gradle和相关依赖项的安全公告,以便及时了解并应对潜在的安全风险。

通过以上步骤和注意事项,你可以有效地配置Gradle使用国内镜像,并继续项目的构建和生产流程。这将有助于提高构建速度,减少因网络问题导致的构建失败,并促进项目的顺利推进。

标签:repo,URL,Gradle,2024,url,ALIYUN,镜像
From: https://blog.csdn.net/m0_70066267/article/details/141454322

相关文章

  • 2024玩儿转TikTok之环境介绍及独立使用住宅ip搭建,最便宜的网络,20元/月,刚刚更新最新教
    郑重申明:本文章只对合法合理做tiktok视频运营的用户做学习交流使用,有其他使用不当的违规违法行为后果自负!网络的环境测试,必须是独立住宅ip,网络环境优良,tiktok发布作品才能有流量1、选择服务器我选择的服务器:https://ipraft.com/?i71b7cf​​​然后下载FinalShell连接......
  • 2024嵌入式面试:OPPO嵌入式面试题及参考答案
    目录TCP与UDP的区别是什么?请简述TCP的三次握手过程。HTTP协议的工作原理是什么?C++11引入了哪些新特性?什么是智能指针?如何解决其内存泄漏问题?进程间有哪些通信方式?CPU的调度策略有哪些?如何保证线程安全?多线程编程需要注意哪些问题?SPI是什么?它有几条线?支持几种......
  • BaseCTF2024-week1-Crypto部分题目wp
    先放一下官方的wp(我这里只放我出的题):Docs(feishu.cn)babypackfromCrypto.Util.numberimport*importrandomflag=b'BaseCTF{}'m=bytes_to_long(flag)bin_m=bin(m)[2:]length=len(bin_m)a=[1]sum=1foriinrange(length-1):temp=random.randint(2*sum+1,4*su......
  • 百度之星2024总结
    百度之星决赛2024受广东信奥好友影响,了解《绝区零》中格莉丝的“新型空洞内特殊作业用工业机器开发日志”,于是作一记录。开场吃过早饭上位,左右两边都是所认识的同学,没有怎么紧张,复习模板。右边沉石鱼惊旋带了一沓厚厚的纸质打印资料,左边的wmy有一大堆的多项式板子,羡慕。比赛......
  • CSP-S 2024 游记
    壹我有一个朋友叫小W,他最近有点闷。我问他为什么闷,他跟我说他根本就没准备初赛。我说你这么牛,连初赛都不用准备。他说,他在梦中见到了ddz,他问ddz没准备初赛怎么办,ddz给他的答复是:不是,哥们。你都免初赛了还问我干啥啊。贰我喜欢月光。空空,不可控,空空失控。不对,不......
  • 2024-08-24 闲话
    六级写作得了不到130分。yzf说pp写了那么多闲话怎么写作拉了。我也很意外,毕竟第一部分的写作甚至用上了考前背的参考句式(平生第一次做这个事情)。我应该是在六级作文里写了一大堆yspm语,评卷老师不能理解yspm语的高明逻辑,于是打了低分。时间转入了2024年的夏天,yspm写闲......
  • 2024年互联网公司时薪排行榜大曝光!
    2024年互联网公司时薪排行榜重磅出炉!这一次,行业薪资数据的透明度前所未有,看完这份榜单,你会发现互联网圈子的贫富差距竟然如此悬殊,不禁让人直呼“酸了”!在这个人人都关注收入与回报的时代,你是否也好奇,自己所在的公司时薪究竟排在什么位置?哪家公司是真正的“印钞机”,而又有哪些......
  • 2024数学建模国赛准备中!!!(2——非线性规划)
    第三章 非线性规划§1非线性规划非线性规划的实例与定义如果目标函数或约束条件中包含非线性函数,就称这种规划问题为非线性规划问题。一般说来,解非线性规划要比解线性规划问题困难得多。而且,也不象线性规划有单纯形法这一通用方法,非线性规划目前还没有适于各种问题的一......
  • CSP-J 第一轮 2024模拟卷-1
    单项选择题我只写重点!!!第四题NOI复赛评测机所用的Linux系统属于()A.UMLB.IDEC.OSD.Database答案:C解析:UML是一种建模语言,IDE是集成开放环境,Database是数据库,NOI复赛评测机所用的Linux系统属于OS(OperatingSystem)第五题如果\(65536\)种颜色用二进制编码来表示,至少需要()个二......
  • 学习笔记 韩顺平 零基础30天学会Java(2024.8.24)
    P532Map接口特点2P533Map接口方法P534Map六大遍历方式     方法一:通过KeySet(),取出所有的Key,把取出的Key放到Set中,再通过Key取出对应的Value                 到这里又有两种方式遍历Set:迭代器、增强for     方法二:通过values(),取出......