idea编译spring源码详细教程

以下源码编译过程是本人按照官方文档实操,并结合国情对一些下载源修改为国内源,如果你是新手建议每一步都安装本教程操作,确保不会出现一些奇葩问题

  • 下载spring源码

建议去码云下载,github下载会比较慢,地址:https://gitee.com/mirrors/Spring-Framework,建议下载标签中的正式版本,我这里下载的是v5.2.0.RELEASE

idea编译spring源码详细教程_第1张图片

  • 仓库修改为阿里云

下载源码并解压后,进入Spring-Framework目录修改build.gradle,需要修改两处:

第一处:

idea编译spring源码详细教程_第2张图片

 repositories {
		maven { url 'https://maven.aliyun.com/nexus/content/groups/public' }
		maven { url 'https://maven.aliyun.com/nexus/content/repositories/jcenter' }
	}

第二处:

idea编译spring源码详细教程_第3张图片

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版本,避免出现各种奇葩问题建议下载对应的版本,这个地址如果没有梯子下载会很慢,建议去:https://mirrors.cloud.tencent.com/gradle/下载,我这里下载的是5.6.2版本

idea编译spring源码详细教程_第4张图片

下载完成后解压,配置环境变量,配置GRADLE_HOME配置为gradle解压路径,配置path加入%GRADLE_HOME%\bin

idea编译spring源码详细教程_第5张图片

idea编译spring源码详细教程_第6张图片

避免每次编译都会去下载gradle,我们需要修改一下Spring-Framework/gradle/wrapper/gradle-wrapper.properties文件,将gradle地址修改为本地压缩包文件地址,这样就不会每次都去下载浪费时间

idea编译spring源码详细教程_第7张图片

  • 编译源码

官方已经为我们提供了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,导入完成

idea编译spring源码详细教程_第8张图片

第三步:移除spring-aspects模块 

在spring-aspects工程上右击选择Load/Unload Modules,在弹出窗口中选中spring-aspects,点击Unload,下图我已经unload了所以没有aspects模块

idea编译spring源码详细教程_第9张图片

第四步,配置jdk版本

打开File-> Project Structure ,在modules和project中jdk版本一定要一样,不然后面编译会报:Information:java: Errors occurred while compiling module,这个错一般都是jdk版本不一致导致的

idea编译spring源码详细教程_第10张图片

idea编译spring源码详细教程_第11张图片

第五步 配置gradle,如图所示:

idea编译spring源码详细教程_第12张图片

至此配置完毕,jvm参数建议调整至少 -XX:MaxPermSize=2048m -Xmx2048m -XX:MaxHeapSize=2048m,现在我们只要进行rebuild,等待就行,期间如果出错,如果你是严格按照上述步骤执行,一般都是下载问题,我们只需重新rebuild,编译完成后就可以新建测试工程进行测试,赶快开启你的源码之旅

你可能感兴趣的:(spring源码)