环境说明
jdk 版本:1.8
spring 版本:源码地址:https://github.com/spring-projects/spring-framework/tree/v5.2.5.RELEASE
构建步骤
1. 将下载下来的源码包放在合适的目录,解压
2. 用 idea open 解压的源码工程
用 idea open 方式打开解压后的源码工程根目录时,会自动触发 gradle 的构建,由于 build.gradle
中的 repositories
的 maven url 配置的是 spring 的官方源,国内网速会比较慢,可将此项配置替换成阿里云的 maven 源,改动链接参考:commit#d370faaa, 示意如下:
repositories {
mavenCentral()
maven { url "https://maven.aliyun.com/repository/central" }
}
由于源码中 gradle-wrapper.properties 涉及的 gradle 版本为 5.6.4,同时由于该配置方式会触发 spring 去下载 5.6.4 的二进制包,我们可以提前下载好 gradle-5.6.4-bin.zip
,可以去 https://gradle.org/releases/ 里找到 gradle 的 5.6.4 的二进制包进行下载,然后更改下配置信息,改动链接参考:commit#92495410,示意如下:
# 其中,xxx 代表本地 gradle-5.6.4-bin.zip 的上级目录
distributionUrl=file\:///xxx/gradle-5.6.4-bin.zip
更改完毕后,重新构建 gradle,笔者花费大约 45 分钟后, build.gradle
构建成功
3. 编译 spring-framework-5.2.5.RELEASE 代码
使用 idea 上 build 功能,开始编译 spring-framework-5.2.5.RELEASE
工程源码,编译过程报如下错误:Execution failed for task ':spring-tx:compileKotlin'
需要在 build.gradle
的 repositories
相关配置中,添加如下配置:参考 commit#9fde4bdb
maven { url "https://maven.aliyun.com/repository/spring-plugin" }
重新构建之后,编译成功。至此,spring v5.2.5.RELEASE 版源码环境已构建完成
4. 创建 spring-jsj-studydemo 模块
创建该模块主要是为了学习验证 spring,构建步骤示意如下:
工程命名:
为 spring-jsj-studydemo
模块添加 spring
核心依赖:
运行一个简单的测试看看:Main.java
5. 将本地构建的源码推送至 gitHub 做版本管理
开源代码托管可以选择 gitHub,也可以选择码云,操作步骤是一样的,描述如下:
# 1. 进入到 spring-framework-5.2.5.RELEASE 工程根目录,初始化 git 本地仓库
git init
# 2. 添加初始化提交
git add . && git commit -u -m "spring init with tag:v5.2.5.RELEASE"
# 3. gitHub 创建空的远程仓库,比如我的 gitHub 远程仓库叫 spring-framework-5.2.5.RELEASE,记录下远程仓库地址
# 4. 在项目根目录下,为本地工程添加远程地址
git remote add origin https://github.com/jiangshuangjun/spring-framework-5.2.5.RELEASE.git
# 5. 将本地工程推送至远程 gitHub 仓库
git push -u origin master