前言
阅读Spring Boot源码,需要先有所了解Spring Framework相关知识或者源码细节等,可以参考我之前的相关博客内容。接下来,主要着手研究Spring Boot这一块,如果还不知道怎么用Spring Boot,建立花费一些时间入门一下。
本文主要是阅读源码的第一步,搭建阅读Spring Boot源码的环境,我们依然使用的是IDEA工具。
环境准备
- JDK8+
- Maven3.5+
- IntelliJ IDEA
下载源码
写这篇文章的时候在19年4月20日左右,2.2.0版本的源码在编译时一直存在问题。故折中下载了2.1.x版本的源代码进行编译 ?
直接下载2.1.x版本的源代码只有10Mb多,很快便可以下载完毕。
《============================ 以下为克隆最新源码的方式 =============================》
官方的仓库地址是在:https://github.com/spring-projects/spring-boot
如果直接 git clone https://github.com/spring-projects/spring-boot.git
有问题,会报出:
error: RPC failed; curl 18 transfer closed with outstanding read data remaining
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed
主要解决方案就是两种:
一种,用 ssh 方式克隆,前提你需要 fork 官方的仓库到自己的 github,然后创建一个 ssh 的 key。然后直接克隆即可:
git clone 自己仓库的ssh地址
大概400Mb+,最近学校网特别慢,下了整整一天……
另一种方案,就是只检出最新的一版代码,版本更新历史就丢弃了,前提你对Spring Boot的发展史不在乎可以这么做:
git clone --depth 1 https://github.com/spring-projects/spring-boot.git
第二种方案相对大小减少很多,速度更快了。
导入IDEA
导入IDEA前,一定要确认安装好了Maven3.5以上的版本,因为之前的版本在编译时,Maven插件好像会报错。
修改根目录下的 pom
文件,在第15行添加上 <disable.checks>true</disable.checks>
。
为了加速下载所有的 jar 包,记得修改 settings.xml 文件将 Maven 源配置成阿里云镜像仓库。
<mirrors>
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
</mirrors>
换源之后下载舒服飞速提升,原本下了一下午的时间大幅缩短,而且不会报出一些莫名奇妙的错误。因为有时候下载失败,导致编译不过去。出了问题我的做法很暴力,直接将本地仓库删干净,然后重新编译。
编译步骤就是进入源码根目录,执行:
mvn clean install -DskipTests -Pfast
等到编译成功&#x