详细图⽂⼀步步记录Spring5.3源码编译和调试(IDEA+Gradle)的过程
1 前⾔
最近稍微研究了⼀下spring源码,看了不少资料发现不少⼤佬都是将spring源码拉到本地,⾃⼰编译完成之后在源码⾥⾯直接写注释,当然也更⽅便了⾃⼰学习和调试。所以我也做了⼀次尝试,在此记录⼀下编译的过程和遇到的问题。
为什么前端都不用dw2 环境准备
本地编译spring源码我使⽤的个软件版本如下:
jquery动画fade系统:Mac os Big Sur
IDEA:2020.1.2
gradle:6.8.3
spring:5.3.7-SNAPSHOT
jdk:11.0.11
3 Spring编译流程
3.1 下载安装gradle
可以去gradle下载所需版本的⼆进制包,我们选择gradle-6.8.3即可。
下载解压完成之后配置⼀下环境变量就⾏。配置完环境变量执⾏gradle -v查看:
有需要的话我们还可以配置⼀下gradle本地仓库的⽬录(相当于maven的repo),新建⼀个环境变量GRADLE_USER_HOME指定你本地的gradle仓库地址。下图是我在Mac上的配置:
当然这⼀步不做也⾏,gradle默认的本地仓库地址是~/.gradle,⾄此gradle的安装就完成了。
3.2 spring源码下载
在github上搜索spring framework的官⽅源代码:
idea配置artifacts这⾥要重点说⼀下,我们下载源码的时候⽤git clone命令拉取代码,不要直接下载它的zip包,否则后续的编译会出现报错!!!,具体错误在本⽂第五节会讲到。
在拉代码之前最好把项⽬fork到我们⾃⼰的仓库
如果⼤家觉得在github上拉代码速度太慢,也可以从gitee上clone,操作步骤跟上述⼀致。下载完成之后如下图所⽰。
3.3 修改配置
下⾯我们需要逐步解释/修改⼀下上图红框中的⽂件:
1. import-into-idea.md
这是官⽅提供的spring源码导⼊idea的步骤和注意说明,这⾥我就不去翻译了,只需要跟着后续的步骤操作就⾏。当然感兴趣的话可以点击阅读⼀下⼈家已经翻译完成的。
2. 修改adle⽂件,加上我们国内的阿⾥云maven仓库。
maven { url "maven.aliyun/repository/public" }
修改完成后如下图:
3. 修改gradle.properties⽂件
version=5.3.7-SNAPSHOT
kotlin.stdlib.default.dependency=false
## 启⽤新的孵化模式
## 开启守护进程通过开启守护进程,下⼀次构建的时候,将会连接这个守护进程进⾏构建,⽽不是重新fork⼀个gradle构建进程
## 这个配置是指定我们的jdk⽬录,其实我本地环境变量配置的是jdk1.8
## ⾄于这⾥为什么要重新指定为jdk11,在⽂章第五节会解答
4. 修改adle⽂件,加上使⽤阿⾥云仓库,提⾼下载速度。
maven { url 'maven.aliyun/nexus/content/groups/public/' }
maven { url 'maven.aliyun/nexus/content/repositories/jcenter'}
修改完成之后如下图:
3.4 开始构建
3.4.1 预编译
多态多姿根据import-into-idea.md中写到的要求,我们需要先进⾏两次预编译。
1. 预编译spring-oxm
$ ./gradlew :spring-oxm:compileTestJava
构建截图如下:
编译器生成的工程文件的扩展名是
2. 预编译spring-core
$ ./gradlew :spring-core:compileTestJava
构建截图如下:
3.4.2 导⼊IDEA
完成预编译之后我们就终于可以把spring源码导⼊IDEA了~~
1. ⾸先需要在idea中为新项⽬配置⼀下gradle的本地仓库⽬录,如果不配置的话,当你导⼊的时候idea会⾃动把依赖包下载到gradle默认⽬录下。
2. 开始导⼊项⽬
选择我们的spring源码项⽬,使⽤gradle编译
点击finish,idea就会开始⾃动编译spring项⽬,此过程中还会去下载项⽬的依赖(jar包)。
等待过程中再去设置⾥⾯修改⼀下gradle软件的地址:
web自动化测试工具
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论