本地编译Spring源码

本文记录了一位开发者在本地编译Spring源码过程中遇到的困难,包括下载慢、编译错误等问题。通过修改gradle-wrapper.properties文件中的下载链接,以及添加阿里云maven库,解决了下载速度问题。此外,还涉及了jdk版本要求,解决找不到标签的bug,以及IDEA中指定项目jdk版本的过程。最终成功编译并总结了所需工具的版本信息。
摘要由CSDN通过智能技术生成

纸上得来终觉浅,绝知此事要躬行。为了更好的体会spring的博大精深,我决定在本地编译一下,打打断点,写写注释啥的。可是万万没想到啊,这两天为了编译spring被gradle锤的头破血流,现在总算弄好了,必须要记录一下,毕竟浪费了我2天的时间(其中下载jdk11就干掉了我4个小时…心累),牢骚到此结束,正式开搞。
Step1. 下载spring源码
首先去 Github 找到spring项目,可以选好版本下载zip,然后解压到本地(如果你这么做的话请选5.1,因为我不能保证你选了别的版本照着下面做能成功)。另一种直接用git clone到本地,我用的是这种方式。spring framework link

如果你嫌github太慢,又不想科学上网咋办?那必须用gitee啊,也就比GitHub快了100来倍,gitee链接在此 页面跟github一样,操作也同上。
拿到clone地址后我把项目clone到了idea工作目录,方便管理,clone好的项目结构如下:

projects structure
Step2.编译
如果这时候按照官网的编译教程,它会告诉你在这个目录下打开git bash窗口,执行:./gradlew build 。如果你没搭梯子老老实实照着做,那么恭喜你掉进坑里了。spring是用gradle构建的,执行这个命令它首先会去下载对应版本的gradle,速度慢到让人哭泣。那么怎么办呢,翻看上面的目录结构,你会看到有个gradle目录,点进去再进入下一层的\wrapper里面,你会看到一个gradle-wrapper.propertiesgradle-wrapper.properties
打开这个文件,将distributionUrl改成阿里云的链接,速度特别快,如果它默认配置是6.8.2的话你直接用6.8.1也是可行的

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https://code.aliyun.com/kar/gradle-bin-zip-6.8.x/raw/master/gradle-6.8.1-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

改完这个之后,再返回到项目根目录下面,找到build.gradle文件,全局搜一下repositories ,在这里也添加上阿里云的maven库,加快jar包下载速度(gradle和maven用的是同一个中央仓库)

repositories {
			maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' }
			maven { url 'https://maven.aliyun.com/nexus/content/repositories/jcenter'}
			mavenCentral()
			maven { url "https://repo.spring.io/libs-spring-framework-build" }
		}

改完这两项之后,就可以按照官网所说执行./gradlew build命令了,这个过程会比较慢,具体有多慢,依个人电脑体质决定;
这个过程中大概率会报错,说一下我踩过的坑吧,首先你的gradle安装目录不要带中文,它会报找不到某个文件的错误,这时候就需要我们改一下用户名了,大概说一下流程,就是你需要把win10自带的超级用户激活,然后注销当前用户,切换到超级用户把c盘下用户目录里的汉字改成英文,然后再win+r输入regedit把对应目录下注册表里的也改了,具体操作就不细说了,百度有详细教程。
其次如果遇到某个标签找不到的bug,比如它提示@Label标签找不到,那就要升级你的jdk版本了,官方文档要求是JDK 8 update 262 or later,没错,它具体到了8里的小版本号,我裂开,我当时的jdk8是251,就这点差,硬是给我整郁闷了,怎么都通不过编译,得了,升级jdk吧。官网推荐的是jdk15,目前来说如果你使用的是jdk8的话,下一个LTS版本就是11,再就是今年即将发布的17了,所以稳重起见,就直接升到11吧,虽然官网下载jdk比较慢,但是我还是建议去官网下,即使要用4个小时…
继续./gradlew build直到build success
Step3. 用idea打开spring
选项目类型的时候选择gradle项目。进去之后大概还会再编译一次,大覆几分钟的时间。
import to idea
如果你升级过jdk,记得idea指定一下项目的jdk版本
jdk version

至此,spring就成功在本地编译成功了,现在把所有涉及到的工具版本都列一下吧:
tools version

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值