注意事项:
1) 本次编译Spring源码使用的IDEA版本是2020.1版本。
Spring源码版本是5.2.x。
Spring官方建议的JDK版本是 JDK 8 update 262 or later。
Grade版本是gradle-5.6.4。
开始编译:
git下载Spring5.2.x源码。建议通过码云链接下载。通过git方式下载,不要下载Zip包。
下载gradle-5.6.4-bin.zip并存放至本地目录。修改刚刚下载的spring源代码里gradle/wrapper里的gradle-wrapper.properties文件,将distributionUrl替换为你本地gradle-5.6.4-bin.zip的目录。
打开下载的spring源代码目录里的build.gradle文件,将maven仓库替换为阿里云地址。
maven { url "https://maven.aliyun.com/nexus/content/groups/public/"} maven { url "https://maven.aliyun.com/nexus/content/repositories/jcenter"} maven { url "https://repo.spring.io/libs-spring-framework-build" } maven { url "https://repo.spring.io/snapshot" } maven { url "https://oss.jfrog.org/artifactory/oss-snapshot-local" }
进入Spring源码所在目录,打开CMD,执行如下命令。一段时间后Spring源码编译就完成了。可能会失败,可以多执行几次。
gradlew :spring-oxm:compileTestJava
将编译好的Spring源码导入Idea工程中,对Gradle进行设置。
导入之后,可以验证一下编译是否成功了。可以新建一个模块,如下操作。编写代码测试。在build-gradle里引入了spring-context模块,运行程序时可能会报错,可以在对应模块的test目录上右击,点击Run all tests就可以了。之后就可以正常跑程序了,发现可以正常获取Bean。接着就可以对Spring源码做修改、注释等操作了,源码编译到此结束。