以下源码编译过程是本人按照官方文档实操,并结合国情对一些下载源修改为国内源,如果你是新手建议每一步都安装本教程操作,确保不会出现一些奇葩问题
下载spring源码
建议去码云下载,github下载会比较慢,地址:https://gitee.com/mirrors/Spring-Framework,建议下载标签中的正式版本,我这里下载的是v5.2.0.RELEASE
仓库修改为阿里云
下载源码并解压后,进入Spring-Framework目录修改build.gradle,需要修改两处:
第一处:
repositories {
maven { url 'https://maven.aliyun.com/nexus/content/groups/public' }
maven { url 'https://maven.aliyun.com/nexus/content/repositories/jcenter' }
}
第二处:
maven{ url 'https://maven.aliyun.com/nexus/content/groups/public'}
maven{ url 'https://maven.aliyun.com/nexus/content/repositories/jcenter'}
下载gradle
打开Spring-Framework/gradle/wrapper/gradle-wrapper.properties查看一下gradle版本,下载对应的gradle版本,避免出现各种奇葩问题建议下载对应的版本,,建议去:Index of /gradle/下载,我这里下载的是5.6.2版本
下载完成后解压,配置环境变量,配置GRADLE_HOME配置为gradle解压路径,配置path加入%GRADLE_HOME%\bin
避免每次编译都会去下载gradle,我们需要修改一下Spring-Framework/gradle/wrapper/gradle-wrapper.properties文件,将gradle地址修改为本地压缩包文件地址,这样就不会每次都去下载浪费时间
编译源码
官方已经为我们提供了idea编译spring源码的文档,我们打开Spring-Framework/import-into-idea.md,安装文档内容一步一步进行操作
1. Precompile `spring-oxm` with `./gradlew :spring-oxm:compileTestJava`
2. Import into IntelliJ (File -> New -> Project from Existing Sources -> Navigate to directory -> Select build.gradle)
3. When prompted exclude the `spring-aspects` module (or after the import via File-> Project Structure -> Modules)
4. Code away
第一步:预编译spring-oxm
打开命令行,cd进入源码Spring-Framework目录执行gradlew :spring-oxm:compileTestJava,过程需要下载依赖,比较慢耐心等待即可
第二步:导入idea
在编译完oxm模块后,我将spring源码导入到idea中,File -> New -> Project from Existing Sources 选择解压的源码目录Spring-Framework,在弹出的窗口中选择gradle,点击finish,导入完成
第三步:移除spring-aspects模块
在spring-aspects工程上右击选择Load/Unload Modules,在弹出窗口中选中spring-aspects,点击Unload,下图我已经unload了所以没有aspects模块
第四步,配置jdk版本
打开File-> Project Structure ,在modules和project中jdk版本一定要一样,不然后面编译会报:Information:java: Errors occurred while compiling module,这个错一般都是jdk版本不一致导致的
第五步 配置gradle,如图所示:
至此配置完毕,jvm参数建议调整至少 -XX:MaxPermSize=2048m -Xmx2048m -XX:MaxHeapSize=2048m,现在我们只要进行rebuild,等待就行,期间如果出错,如果你是严格按照上述步骤执行,一般都是下载问题,我们只需重新rebuild,编译完成后就可以新建测试工程进行测试,赶快开启你的源码之旅