Spring源码编译
环境及版本介绍
- JDK------1.8及以上
- spring版本,在此,本人选择的是5.2.0的版本
- 开发工具,本人使用的时IDEA,工具版本不影响
编译前的准备
- 安装JDK(安装方法网上很多,自己查找安装)
- 下载spring源码,可以从spring官方的github库中(https://github.com/spring-projects/spring-framework)进行下载。由于需要从国外下载,速度可能会慢,在此提供一个下载好的(链接:https://pan.baidu.com/s/18lEeQCwQKo1E4bli4SAJ2A
提取码:dvda)
编译源码
-
使用Gradle来预编译spring-oxm(Gradle是个构建系统,能够简化你的编译、打包、测试过程,可以类比成Maven)Gradle的子项目工具gradle wrapper的作用就是简化Gradle本身的安装、部署。因为不同项目可能需要不同的Gradle,手工部署的话比较麻烦,而且可能产生冲突,所以需要Gradle Wrapper搞定这些事。
-
解压spring源码包,为了使得GradleWrapper更快连接服务器,在解压的文件中找到build.gradle文件,修改其镜像
-
在build.gradle文件中修改的步骤:
a 、plugins上方,buildscript里面加入repositories{
maven{ url ‘https://maven.aliyun.com/nexus/content/groups/public/’ }
maven{ url ‘https://maven.aliyun.com/nexus/content/repositories/jcenter’ }
}
b、在resolutionStrategy下方,configurations.all上方加入
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" }
}
-
执行指令预编译spring源码(可能需要耗时几十分钟,看网速)
进入命令行终端cmd,通过命令行进入到spring源码文件路径,执行.bat文件,执行命令行如下:gradlew.bat :spring-oxm:compileTestJava
5.如果编译成功,或者试了很多次都是超时问题,则可以直接打开idea,由于idea自带
Gradle插件(也可以额外配置安装上)先将项目导入
直接在idea上操作,如果导入的时候出现某些jar下载超时。
可以直接点击该jar的下载链接尝试下载,下载完成后,需要找到gradle默认的保存的repository路径,具体可以打开idea->setting->build,Execution,Deployment->Gradle->gradle user home去找到相关路径。
随后,去到.gradle目录下的cachesmodules iles-2.1目录中,按照url路径进入目录,将下载的jar包拷贝到这里面。
针对于刚才编译成功的,到这里直接在idea里面refresh就完成源码的编译了
针对于没有编译直接先用idea导入的,到这一步之后,也可以在原来的cmd路径下面执行
gradlew.bat :spring-oxm:compileTestJava
重新编译,之后点击刷新按钮reimport项目就可以了(如果先前已成功,则直接在idea里面refresh就好了)