Spring源码编译加速

本文介绍了如何通过配置阿里云镜像加速Spring源码的本地编译过程。首先,需要在用户目录下创建init.gradle文件,设置阿里云仓库URL;然后,将gradle-wrapper.properties中的distributionUrl指向本地已有的gradle版本,同时在build.gradle中替换默认仓库为阿里云仓库。通过这些步骤,可以显著减少编译时间,从原来的近1小时缩短到3分钟。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Spring源码编译加速,解决本地卡、慢等问题
最近在学习spring源码,下载源码后,使用gradle编译源码时,发现速度特别慢,在网络上参照了很多优秀的博客,修改了一系列的配置,包括settings.gradle、build.gradle 等,甚至还将本地的gradle文件夹里创建了一个init.gradle的文件,发现还是没有用,编译结束还是需要将近1个小时,当然,这个可能跟我的网络也有一定的关系。
上干货:用户目录上创建一个.gradle文件,并将里面的URL配置到阿里云,再次编译,3分多钟就结束了。
1、先将spring源码下载下来,并安装好对应的gradle
我的spring源码是5.2.8.RELEASE ,gradle用的是5.6.4。

在这里插入图片描述
2、去用户目录下创建init.gradle文件,并配置阿里云
用户目录大概长这个样子,你每天打开电脑登录的是哪个用户就是谁。
在这里插入图片描述
下面是init.gradle文件的内容,保存后退出。

allprojects{
   repositories {
       def REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public/'
       all { ArtifactRepository repo ->
           def url = repo.url.toString()
           if ((repo instanceof MavenArtifactRepository) && (url.startsWith('https://repo1.maven.org/maven2') || url.startsWith('https://jcenter.bintray.com'))) {
               project.logger.lifecycle 'Repository ${repo.url} replaced by $REPOSITORY_URL .'
               remove repo            }
       }
       maven {
           url REPOSITORY_URL        }
   }}


3、在下载的源码的目录gradle/wrapper
可以将文件gradle-5.6.3-all.zip放到本级目录,这样可以不用去远端下载,加快速度.
本级目录也需要创建文件init.gradle用于替换默认的url,可以有效防止401鉴权的发生.
init.gradle的内容如下:

allprojects{
   repositories {
       def REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public/'
       all { ArtifactRepository repo ->
           def url = repo.url.toString()
           if ((repo instanceof MavenArtifactRepository) && (url.startsWith('https://repo1.maven.org/maven2') || url.startsWith('https://jcenter.bintray.com'))) {
               project.logger.lifecycle 'Repository ${repo.url} replaced by $REPOSITORY_URL .'
               remove repo            }
       }
       maven {
           url REPOSITORY_URL        }
   }}

gradle-wrapper.properties内容修改为:

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
#distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-bin.zip
#此处配置的gradle版本里面的init.d中配置了替换url的方法,可以有效防止出现从repo.spring.io下载出现401问题
#注意官网下载的默认是没有init.d中的脚本,**需要手动压缩进去**,这样程序解压就能直接调用了,本地配置的环境变量gradle没生效
distributionUrl=gradle-5.6.3-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

4、build.gradle中需要替换的地方有两处

buildscript {
repositories {
	    maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' }
	    maven { url 'https://maven.aliyun.com/nexus/content/repositories/jcenter'}
	    maven { url "https://repo.spring.io/libs-spring-framework-build" }
		maven { url "https://repo.spring.io/plugins-release" }
		mavenCentral()
	}...省略下方代码
repositories {
		maven { url "https://maven.aliyun.com/nexus/content/groups/public/" }
		//maven { url "https://repo.spring.io/libs-release" }
	}

	dependencies {...此处省略下方代码

5、编译源码
使用命令窗口,转入spring源码的目录后,使用命令gradlew :spring-oxm:compileTestJava编译,接下来就是激动人心的时刻了。
在这里插入图片描述
到此就结束啦!希望对大家有所帮助哦!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值