最近想利用业余时间学习一下spring源码,阅读源码的第一步就是构建spring源码的阅读环境。由于spring 5.0.x是通过gradle构建的,由于平时主要还是使用maven构建项目,因此在构建过程还是遇到很多坑,百度也是千奇百怪,真是万事开头难,因此谨以此文记录一下构建过程。
环境
- jdk1.8.0_121
- idea 2019.3.3
- gradle-4.4.1
- spring-framework 5.0.x
构建spring-framework源码阅读环境
1、在GitHub上*载下**spring-framework
1)搜索spring-framework

GitHub搜索spring-framework
2)选择*载下**5.0.x分支

选择*载下**5.0.x分支
3)*载下**本地后解压

本地解压spring-framework-5.0.x
4)关注解压后以下标注的几个文件

5)在idea中构建spring,打开import-into-idea.md文件

import-into-idea.md文档中已经详细说明了导入的步骤:
- 进入我们*载下**到本地并解压的spring-framework路径下,执行:
gradlew :spring-oxm:compileTestJava 命令
- 预编译spring-oxm模块
- 在编译之前文档中还说明让我们把spring-aspects模块先注释掉

注释spring-aspects模块
6)用cmd窗口进入spring-framework路径下,执行
gradlew :spring-oxm:compileTestJava

执行gradlew :spring-oxm:compileTestJava
首次执行时,会提示*载下**gradle-4.4.1-bin.zip文件,该文件是所*载下**spring源码包默认的gradle版,此时,按ctrl+C退出编译过程,去该网站*载下**指定版本gradle:
https://services.gradle.org/distributions/
2、安装gradle
1)本地解压

2)配置环境变量GRADLE_HOME

3)Path:%GRADLE_HOME%\bin

4)检查是否配置成功
gradle -v

3、预编译spring-oxm模块,执行命令
gradle :spring-oxm:compileTestJava

注意:gradle 和 gradlew
gradle:本地*载下**安装配置好gradle,执行该命令
gradlew:根据spring源码指定gradle版本去*载下**gradle,执行该命令
因为我们是本地安装好了gradle,因此执行gradle命令。
4、IDEA构建spring源码项目
1)import Project

选址spring源码项目
2)选择gradle,点击finish

导入gradle项目
3)gradle配置

配置gradle
4)修改maven仓库地址
由于我大天朝网关有限制,因此在idea编译过程中会出现*载下**不到jar包或者timeout等异常,因此修改maven地址如下
repositories {
//Maven本地资源库
mavenLocal()
//阿里云仓库
maven { url "http://maven.aliyun.com/nexus/content/groups/public/" }
//spring仓库(默认)
maven { url "https://repo.spring.io/plugins-release" }
//Maven中央资源库
mavenCentral()
}

修改maven仓库地址
5)配置完毕后,刷新gradle,把一切交给idea,静静等待即可

刷新gradle
6)IDEA构建完成

构建成功