文章目录
前言
阅读源码的益处不再多谈,此篇记录本人如何完成Spring源码阅读环境的搭建,主要是源码编译,此篇只做参考
环境如下:
- win10
- idea2020.1
- spring-framework5.2.x
- gradle5.6.4
- jdk8
一、下载spring源码
Github上搜索spring-framework下载源码,操作如下图
clone到本地,网速随各位客官所处网络环境有关
切换到所需分支,以5.2.x分支为例。
# PS:记得先进入spring-framework文件夹
cd spring-framework/
# 查看当前git状态
git status
# 切换远程分支
git checkout origin/5.2.x
二、Gradle下载与配置
由于众所周知的“网络”问题,我们先预先下载gradle,不然会陷入无尽的痛苦之中(超时等网络问题)
下载安装
配置环境变量(不附图了)
配置以下变量
GRADLE_HOME E:\gradle-5.6.4
GRADLE_USER_HOME D:\gradle-repository
Path %GRADLE_HOME%\bin;
测试
三、spring-framework相关配置文件修改
主要是做阿里云镜像的添加,解决下载慢、失败等问题
1. gradle-wrapper.properties编辑
# 文件位置:spring-framework\gradle\wrapper
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
# 注释原来的,不改的话每次运行都会去这个地址下载,由于网络原因会有困扰
# distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-bin.zip
# 改成如下所示
distributionUrl=file\:/E:/gradle-5.6.4-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
2. settings.gradle编辑
# 文件位置:根目录
# pluginManagement部分改前
pluginManagement {
repositories {
gradlePluginPortal()
maven { url 'https://repo.spring.io/plugins-release' }
}
}
# pluginManagement部分改后,添加了阿里镜像
pluginManagement {
repositories {
maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
maven { url 'https://maven.aliyun.com/repository/spring-plugin' }
gradlePluginPortal()
maven { url 'https://repo.spring.io/plugins-release' }
}
}
3. build.gradle编辑
# 文件位置:根目录
# 修改位置 repositories,差不多280行
# 改前:
repositories {
mavenCentral()
maven { url "https://repo.spring.io/libs-spring-framework-build" }
}
# 改后: 加了阿里云镜像
repositories {
maven { url "http://maven.aliyun.com/nexus/content/groups/public"}
mavenCentral()
maven { url "https://repo.spring.io/libs-spring-framework-build" }
}
注释下图这一行,不注释我编译时会卡在这一插件的下载(初探spring源码,不确定注释会对后续有什么影响,此篇目的为编译通过,并用idea打开方便阅读)
四、开始编译
运行根目录的gradlew.bat,成功截图如下:
导入到idea前,还需有些事情要完成,参考根目录中的import-into-idea.md说明
预编译spring-oxm,成功如下图:
导入到IDEA
按照如下图指示导入: