前言
在自己的电脑上成功编译了Spring源码之后,心血来潮,在公司的电脑上也编译一下,方便午休时间浏览。谁知出现了问题,虽然最后解决了,但还是耽误了不少时间,在这里记录一下。
1.Spring源码下载
通过git拉取源码https://gitee.com/mirrors/Spring-Framework.git,或者下载压缩包。github和码云都有对应的资源,我的是5.2.8的版本。
2.Gradle下载配置
因为Spring源码是用Gradle进行编译的,所以需要下载Gradle,官网上就有,可以免费下载,如果官网下载速度太慢,可以用迅雷下载,速度还是可以的,亲测。当然也有好心人分享很全的资源,忘记保存了。
这里gradle下载需要注意版本是否和Spring源码支持的版本兼容,可以打开spring源码文件里面的gradle/wrapper/gradle-wrapper.properties,里面可以看到支持的gradle版本,最好版本保持一致,我因为这个吃过亏。
下载下来之后直接解压,配置环境变量就可以用了
GRADLE_HOME:E:\soft\gradle-5.6
Path: %GRADLE_HOME%\bin
配置完成之后,在命令行输入gradle -v,打印出来版本信息,说明gradle配置成功。
3.配置国内镜像
找到Spring里面的build.gradle文件,添加国内镜像
repositories {
maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' }
maven { url 'https://maven.aliyun.com/nexus/content/repositories/jcenter'}
mavenCentral()
//注意保留原镜像地址,否则可能会出问题
maven { url "https://repo.spring.io/libs-spring-framework-build" }
}
4.源码编译
Spring文件中有相关的源码编译的文档,我们找到import-into-idea.md文件,对应的导入eclipse也有。
导入idea之前需要对spring-oxm模块进行编译,这里直接进入到spring-oxm模块目录,
运行:./gradlew :spring-oxm:compileTestJava
这里gradlew是gradle的管理包,实际使用的是Spring配置的gradle进行编译,
可以直接运行:gradle :spring-oxm:compileTestJava
5.导入到idea中
导入到idea中,给idea配置gradle,这里参照博客在IDEA里gradle配置和使用
之后idea会自动编译Spring源码,下载项目依赖的jar包,编译成功后控制台会提示
idea右侧的gradle工具栏会显示项目link
到这里我们的源码编译工作就大功告成了。