「这是我参与11月更文挑战的第12天,活动详情查看:2021最后一次更文挑战」。
一,前言
上一篇,使用 Spring 3.2.x 版本搭建了 Spring 源码环境
然而 3.2.x 版本 Spring 源码已经比较久远了,导入代码后很多错误都需要手工处理
甚至于连版本依赖的 jar 版本都需要重新修改才能 build 成功
搭建源码环境的初衷是为了学习源码,Spring 框架源码的核心主要是 AOP 和 IOC
而这两部分在版本迭代中基本稳定,版本升级对于学习框架本身并没有太大影响
所以,这次选用 Spring 4.x 源码重新搭建 Spring 源码环境
二,下载源码
这部分就不再赘述了,到 GitHub 直接下载对应版本的 Spring 源代码即可:
三,构建工程
1,下载源码后,查看根目录下 README.md 文件:
2。执行 ./import-into-eclipse.sh
(要求 JDK8)
其中,提到了 STS - 一个基于 eclipse 的 Spring IDE 工具:
- Eclipse downloads: download.eclipse.org/eclipse/dow…
- STS downloads: spring.io/tools/sts/a…
- STS nightly builds: dist.springsource.com/snapshot/ST…
耐心等待一段时间,执行步骤1,大约 15 分钟:
步骤1成功后,继续执行步骤2:
步骤 2、3、4、5 一样,直接下一步就好:
执行./gradlew install
(约13分钟)
执行./gradlew build
(约10分钟)
四,下载并安装STS(spring-tool-suite)
Spring 提供了一个基于 eclipse 的 Spring IDE,简称STS;
使用这个 IDE 在学习 Spring 源码时将会带来很多便利;
下载并安装STS:spring.io/tools/sts/a…
下载完成后安装并启动STS:
五,导入工程
导入spring源码工程:
此时项目会有报错,因为Spring构建需要groovy
六,安装 groovy
安装groovy:
http://groovy-lang.org/download.html
brew安装:
Brave:~ Brave$ brew install groovy
查看版本号:
Brave:~ Brave$ groovy -v
Groovy Version: 2.4.12 JVM: 1.8.0_51 Vendor: Oracle Corporation OS: Mac OS X
此时,eclipse 下的 Spring 项目依然报错,原因是 eclipse 需要安装对应版本的 groovy 插件;
注意:groovy 插件需要与 eclipse 版本相匹配,否则无效;
七,安装 eclipse-groovy 插件
安装插件:eclipse 的 Help -> Install New Software 中,下载 groovy 插件
STS 版本 3.9.2 基于 eclipse4.7.2 版本,需下载对应版本的 groovy 插件(4.7版本)
- Spring Tool Suite:spring.io/tools/sts/a…
- Groovy/Grails Tool Suite:spring.io/tools/ggts/…
4.7 版本 Groovy 插件地址: dist.springsource.org/release/GRE…
一般来讲,安装 groovy 插件后重启 eclipse -> clean 项目后问题解决; 但有时候还会继续报错,这可能是由于 groovy 版本导致的编译问题;
八,Groovy 编译版本问题
Groovy 的编译版本问题,会有下面的报错:
修改 eclipse 配置中 groovy compiler 版本:
转换后要求重启 eclipse,重启后问题解决;
九,Spring 4.3.6 源码编译完成
编译完成截图如下: