1、下载源码
1.1、git下载源码
git地址:https://gitcode.net/mirrors/spring-projects/spring-framework.git
1.2、源码导入idea
源码下载地址:https://gitcode.net/mirrors/spring-projects/spring-framework/-/archive/5.2.x/spring-framework-5.2.x.zip
2、下载gradle
gradle下载地址:https://mirrors.cloud.tencent.com/gradle/
这次spring源码解读匹配的gradle版本是5.6.4,下载地址:https://mirrors.cloud.tencent.com/gradle/gradle-5.6.4-bin.zip
3、导入源码到idea并编译
3.1、导入源码
配置idea的gradle
3.2、编译项目配置
将gradle-wrapper.properties中的distributionUrl地址改成本地gradle的安装包地址
将build.gradle中的repositories请求地址改一下,方便下载对应的jar包
maven { url 'https://maven.aliyun.com/repository/public/' }
maven { url 'https://maven.aliyun.com/repository/spring/'}
mavenLocal()
mavenCentral()
配置完成后,点击刷新gradle依赖
**注意:在编译spring源码的时候,一定要注意idea的版本和网络,idea的版本要用2019版本及以上,试过用2018版本,死活编译不过去。还有就是网络问题,会碰到下载https://plugins.gradle.org/下的一些jar失败,因为是外网地址,下载比较慢,碰到请求超时的,点击刷新gradle依赖,重试几次,因为已经下载到本地的,就不会再去下载了。整个编译过程差不多要半个小时。
编译源码的时候报错处理:
Error:Kotlin: [Internal Error] java.lang.LinkageError: loader constraint violation: loader (instance of org/jetbrains/kotlin/cli/jvm/plugins/PluginURLClassLoader$SelfThenParentURLClassLoader) previously initiated loading for a different type with name "kotlin/sequences/Sequence"
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
更新kotlin版本,路径为:settings -> Languages & Frameworks -> kotlin