2023年7月4日发(作者:)
JDK1.8及Spring5.0.x源码环境搭建源码阅读是程序员进阶必不可少的⼀环,对于源码的阅读我的建议是按需加载,⽇积⽉累,准备长期作战,就像数据结构和算法⼀样,刷题学习可能是⼀个需要长期坚持的事情,不仅仅是为了⾯试更是为了提升基本功。但是凡事不可急功近利,⼀⼝吃不成胖⼦,源码阅读在初期应该是先看⾃⼰⼯作中⽤到的⼀⼩部分,感兴趣或者有疑惑的⼀⼩部分,然后随着⼯作经验的增加,基础知识的夯实,再逐渐系统化学习。好的源码能给我们带来很多启发,也能让我们不仅是会⽤⼯具或框架,更能⽤好,能解决疑难。阅读源码需要⼀定的知识储备,⽐如设计模式,数据结构和算法,操作系统,计算机⽹络,甚⾄编译原理等等,同时需要在⼼⾥做⼀个长期规划,逐渐积累。本篇博客只是简单的源码环境搭建介绍,主要包括JDK1.8源码与Spring5.0.x源码搭建。有问题可在本博客或者留⾔⽂章⽬录为何要搭建源码阅读环境呢,最开始阅读源码的环境,对于JDK⼤部分⼈是直接点进去看,然后在外部另起⽂档做笔记,⽽Spring源码可能是直接下载好源码,然后本地点进去看源码然后加注释。可是这样有两个问题:既然阅读源码是⼀件长期需要的事情,那就需要在源码上加上⾃⼰的注释,把⾃⼰的理解备注好,同时搞个仓库保存起来。可是我们平时代码中依赖的JDK和Spring,源码都是只读的,不能加⾃⼰的注释,⽽下载的Spring源码码虽然能加注释,但是没有通过demo运⾏起来跟进去源码阅读,只是静态的点⼀点⾃⼰想看的类,然后⼀层层往下,虽然可以加注释,但是这样如果想验证代码执⾏流程是不⽅便的,只能参考博客或者⾃⼰摸索,这效率也太低了,所以需要搭建⼀个环境来⽅便⾃⼰能够边运⾏代码边加注释。说来惭愧,没想到我之前认为简单的源码环境搭建,断断续续搞了三天。其中JDK源码环境搭建没有费多少时间,⼤概不到半⼩时,但是剩下的两天多时间,折腾Spring源码环境让我⼏近崩溃,搞下来的最⼤感受是第⼀有点吃内存,我的笔记本⾃从搭了Spring源码环境开起来IDEA就卡的不⾏,第⼆就是gradle版本匹配⼀定要正确,不然不兼容问题,反复下载依赖问题能让⼈崩溃。下⾯开始正⽂:版本说明:JDK1.8+IDEA2020.2+SpringFramework5.0.x+Win10JDK1.8源码阅读环境搭建在IDEA中新建⼀个maven项⽬,之后在项⽬下新建⼀个包,但是注意不要放在src包下,这样会导致编译的时候⼀起编译造成卡顿,⽐如我这⾥新建的包是relsource找到你安装jdk的路径也就是你电脑上配置的JAVA_HOME路径下的⽂件,拷贝到上⼀步新建的包所在路径下,然后解压,解压后删除原zip压缩包经过上⾯两步得到的IDEA项⽬树如图所⽰:接下来我们需要将我们项⽬依赖的jdk替换成我们导⼊的jdk源码,以下点击File-Project Structure-SDKs-Sourcepath,将项⽬中原本依赖的jdk包换成我们刚才导⼊relsource包下的jdk即可。经过上述步骤就完成了jdk源码环境的搭建,接下来在src下写个测试类,并在相关代码出打断点,看下我们进⼊的源码部分是否还是只读的。在写测试类之前,需要设置下debug时可以进⼊源码,设置⽅法如下:File-Settings-Build,Execution,Deployment-Stepping之后去掉Do not step into the classes前⾯的勾选项,如下图:我在src⽂件夹下新建了⼀个测试类FirstTest,内容如下:public class FirstTest { public static void main(String[] args) { ArrayList list = new ArrayList<>();//此处打断点 ("tom"); ("amy"); ("okr"); n(list); }}接下来在debug模式下,通过Step into(F7)就可以进⼊到源码,环境搭建完毕SpringFramework5.0.x 源码阅读环境搭建准备⼯作码云账号(可选)Spring官⽅提供了源码的,但是直接从github上⾯clone太慢,所以建议⾃⼰上gitee注册个账号,然后把仓库同步过来,⽹上也有别的博主公布了⾃⼰的gitee仓库地址,供不想注册gitee的同学去clone,但是我建议还是⾃⼰注册⼀个码云账号,⾸先这个事情不废时间,注册账号⽤⼿机很快注册好,然后同步代码我亲测⽤时七分钟整个仓库就同步过来了,其次后期你可能想看最新版本的代码,那gitee上别⼈的仓库不⼀定能很及时的同步,⾃⼰建⼀个账号随时可以同步新代码过来,这也是gitee⽅便的⼀个地⽅,当你第⼀次把仓库导⼊的时候,后⾯还可以实时同步最新代码,很⽅便。clone代码(必选)在第⼀步基础上,通过IDEA去把代码从gitee上clone下来,这⾥注意最新版本的Spring framework源码依赖了jdk11的jar包,所以如果你的电脑上jdk版本低于11,clone下来后请不要直接选择master分⽀。我这边由于⾃⼰的电脑上安装的是jdk1.8,⽽且我的电脑会写⼯作代码,刚开始时我想将JDK版本升级到11,但是看到这两个版本还是有很多第三⽅jar包不同的地⽅,所以我没敢贸然升级,最终还是选择先试⽤5.0.x这个分⽀,只要jdk1.8就够了。安装gradle(必选)⽅法⼀:本地安装gradle这⼀步⼀定要注意⼀点,你的gradle版本不要⾃⼰去搜索最新版本的安装,⼀定要按照你clone下来的代码中官⽅所⽤的版本来,具体到这⾥,在clone下来的代码对应分⽀的gradle包下,有⼀个ties⽂件中的如下参数指定distributionUrl=/distributions/我在这⾥就踩了坑,由于我刚clone下来代码使⽤的是master分⽀,对应的官⽅gradle版本是6.5.1,我就安装了gradle6.5.1版本,配置了环境变量,但是当我编译源码后发现各种报错,最后发现依赖了jdk11的包⽽我⼜暂时不想升级jdk版本的时候,我切换到了5.0.x版本,这个时候官⽅指定的gradle版本如上,是gradle-4.4.1-bin版本,我当时想这个应该没啥关系,⾼版本肯定兼容低版本嘛?谁知当我搞定⼀切其他问题的时候,最后总是报⼀些指令在当前版本gradle不⽀持什么的,我⼜重新装了4.4.1版本,⽽重新安装后,Spring依赖的相应jar包⼜会重新下载⼀次,我每次下载都需要两⼩时以上,所以来回浪费了好多时间。⽅法⼆:坐享其成如果你不想在⾃⼰本地⼿动安装gradle,那么你可以在clone导⼊源码的时候,IDEA会提⽰你下载gradle,这个时候下载的版本就和官⽅是⼀样的,所以你只要等他下载好就⾏,这个过程也是很耗时间的⼀个过程,虽然整个包只有70-100M多,但是下载速度实在太慢。修改下载源镜像位置修改单个项⽬的下载源和maven⼀样,gradle也可以配置⾃⼰下载依赖jar包时⾸选的仓库地址,默认路径下载依赖构建项⽬⽐较慢,所以源码下载下来之后,我们⾸先进⼊到 ⽂件中(就在最外层⽂件夹,项⽬树的下⽅),添加下载源(原有的保留,添加 Alibaba 下载源):repositories { mavenCentral() maven { url "/repository/public" } //...原有的保留}全局设置下载源如果我们想让其他基于gradle编译打包的项⽬也使⽤上述镜像,我们需要在gradle包的路径下进⾏操作,默认的是在C盘⽤户⽬录下user下⾯的.gradle ,需要在.gradle⽂件夹下,新建⼀个⽂件,使⽤⽂本编辑器打开,输⼊以下⽂本allprojects { repositories { maven { name "aliyunRepo" url "/repository/public" } }}编译项⽬依赖下载完成之后(我的依赖下载⽤时都在两⼩时以上,因为切换版本还反复下了好⼏次
发布者:admin,转转请注明出处:http://www.yc00.com/news/1688461961a141007.html
评论列表(0条)