IDEA编译Spring源码
IDEA编译Spring 5.2.x源码
参考:Spring 5.2.x 源码编译1 Spring 5.2.x 源码编译2
spring源码下载地址:github gitee gitee下载速度更快一点
编译环境:
1 | JDK:1.8.0_202 |
Gradle版本是5.6.4,因为spring 5.2.x版本使用的是Gradle5.6.4版本构建的
在该路径下:Spring-Framework/ gradle/wrapper/gradle-wrapper.properties,能看到spring需要的gradle版本,下载对应的版本安装gradle就行,否则会出现错误。
spring的gradle配置里面添加阿里云镜像库:
添加阿里云镜像是加快下载spring源码依赖的jar包。如果不使用阿里云镜像库,下载速度很慢,需要等两三个小时。
1.修改源码根目录的build.gradle文件,增加阿里云镜像库
1 | maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' } |
2.修改源码根目录的settings.gradle文件,增加阿里云镜像库
将下载的spring源码导入IDEA:
等待spring源码依赖jar包下载完成:下载时间有点长
下载编译完成后出现一下错误,需要将spring 加入本地git版本控制后,才不会出现该错误。
spring 加入本地git版本控制:
spring源码的根路径下有一个import-into-idea.md的文件,介绍导入spring源码的步骤
我们在控制台输入以下命令进行编译:
1 | gradlew :spring-oxm:compileTestJava |
执行完成后如下:报错的 Process ‘command ‘git’’ finished with non-zero exit value 128 不影响,解决该错误需要将spring 加入本地git版本控制
排除spring-aspects模块:需要安装其他的jar包,这里为了解决报错就排除掉
新建测试module进行测试:
build.gradle里面增加依赖 compile(project(":spring-context"))
1 | build.gradle: |
1 | package com.hcc.config; |
1 | package com.hcc.service; |
1 | package com.hcc; |
输出结果:
1 | com.hcc.service.UserService@4c75cab9 |
运行时,需要改一下如下配置:
到此,spring源码编译过程完毕。