在搭建源码调试环境的时候,原以为是简单的项目导入,但在构建的时候报错不断!!!
我把自己的成功的流程和一些错误记录一下,也希望可以帮助到有需要的小伙伴呀~
源码环境搭建
准备工作
不同的源码版本对于Gradle的版本需求不同,不同的Gradle版本对JDK的版本需求也不同。
我根据JDK1.8的版本选择了较早发布的Spring源码版本,源码中的gradle-wrapper.properties文件中有对应的Gradle版本(具体路径在下一节),git使用的是最新版本。
我的搭建环境具体如下:
序号 | 环境 | 版本 |
---|---|---|
1 | OS | Windows10 |
2 | Spring源码 | spring-framework-v5.2.22.RELEASE |
3 | JDK | 1.8.0_152 |
4 | Gradle | gradle-5.6.4-bin.zip |
5 | Git | 2.38.1 |
6 | 编译工具 | IntelliJ IDEA 2021.1.1 x64 |
获取源码和工具
- 确定JDK的版本:
打开系统的 cmd 控制台窗口,输入
" java -version "
,查看确定自己的JDK版本。
- 安装Git工具:
根据自己的系统,直接在官网下载并安装->Git工具。
- 下载Spring源码,有两种获取方式,更推荐第一种使用命令的方式,可以直接将拉取的源码包初始化到本地仓库,速度也更快;第二种
直接导入官网下载的项目进行构建会报错
(我刚开始用的第二种方式报错折腾了几番,不过也解决啦,在文章最后的报错部分会有解决方案):
(1)打开 cmd 控制台,cd到自己想存放的目录,使用 " git clone " 命令。其中 " x.x.x " 表示需要拉取的 Branches 分支(如:5.2.x); " tags" 表示需要拉取的 Tags 分支(如:v5.2.22.RELEASE)。
git clone -b x.x.x https://github.com/spring-projects/spring-framework.git
git clone --branch tags https://github.com/spring-projects/spring-framework.git
(2)直接在GitHub下载相对应版本的Spring源码->GitHub下载页面。
- 下载对应的Gradle包:
(1)在【spring-framework-v5.2.22.RELEASE\gradle\wrapper】找到下载的Spring源码的gradle-wrapper.properties文件,确定需要下载的Gradle版本。
下载完成后可以将文件中的Gradle路径注释,并添加一条其所在文件夹路径。
(2)在->Gradle官网找到对应版本并下载。
(3)在电脑【系统属性–>环境变量–>系统变量】中,先添加添加一条系统变量GRADLE_HOME(表示Gradle所在路径),再在变量Path中添加一条"%GRADLE_HOME%\bin "。
(4)在idea的设置搜索Gradle,配置所在路径。
5. 可以修改源码项目中下面两个文件的下载路径,替换成阿里云仓库,提高下载速度。
(1)setting.gradle文件。
(2)build.gradle文件。
使用Gradle构建源码项目
将Spring源码项目导入idea中,点击Gradle显示栏中的构建图标,在下方打印出带 " BUILD SUCCESSFUL " 的字样就表示项目构建成功。
调试测试
新建一个模块
- 右击源码项目包选择【新建->新模块】。
- 选择Gradle构建项目,框架选择Java,点击下一步。
- 为新模块取个名称,我根据调试需求取名为spring-debug,点击下一步。
- 在源码项目中找到新建的模块,在新模块的 " build.gradle " 文件中加上以下代码,并点击Gradle项目栏中的刷新图标,重新构建一下。
compile(project(":spring-context"))
新建配置文件和类
-
新建一个Student类,简单定义几个属性。
-
新建配置文件applicationContext.xml,添加一个bean及其对应的属性值。
-
新建测试类Test,读取xml配置文件。
调试bean的生成过程
-
在该行代码前打上断点,并右击后点击【调试】。
-
等待项目构建完成后就可以开始一步步的debug之旅啦!
遇到的报错
JDK与Gradle不匹配
报错:我在第一次导入源码项目时,idea的右下方提示我的JDK不支持gradle-5.6.4
!
解决:需要在cmd控制台检查一下自己的JDK版本,我常用的是 jdk14,对于5.2.22.RELEASE的源码项目所需要的gradle版本而言 jdk 的版本太高,所以需要降低下 jdk 版本,我使用的是下方的 jdk1.8。
若和我一样安装了多个 jdk,记得使用前在系统变量中修改下JAVA_HOME,需要使用哪个版本改成其所在路径。
jdk版本:1.8.0_152
链接:https://pan.baidu.com/s/14c9E86kIdScDAfofG-WhEA?pwd=7136
提取码:7136
git找不到
报错:开始构建项目后很快在下方打印出 “Could not start git
”,因为我在导入项目前把 idea下载的 git 换到了其他位置,导致 idea找不到它。
解决:安装完成在idea【设置】里面,搜索找到 【 Git 】,重新选择安装路径,并测试一下,配置成功会在路径下方显示Git的版本。
git未初始化
报错:我第一次构建的源码项目是在GitHub直接下载安装包(在文章之前提到的第二种获取方式),idea构建了很久后却在右下方提示我的Build scan background action failed.
!
解决1:在CSDN搜索一番后发现很多博主都是使用 git clone 重新拉取源码项目,这种方式导入后的项目确实不会再报错!
解决2:对比两种方式获得源码项目发现–>第一种获取的项目会自带有 git 标识的绿色图标,但直接下载的项目就没有!
所以需要给下载的项目初始化一个 git 本地仓库,让它也带上绿色图标。
- 方式一:【右击源码项目->点击" Git Bash Here "】,使用代码初始化。
//1.初始化与项目同名的空仓库
HP@LAPTOP-1SF1JH0V MINGW64 /f/Java Project/spring-framework-main
$ git init
//2.添加项目中的所有文件
HP@LAPTOP-1SF1JH0V MINGW64 /f/Java Project/spring-framework-main (master)
$ git add
//3.提交文件到仓库,后面是提交说明和备注
HP@LAPTOP-1SF1JH0V MINGW64 /f/Java Project/spring-framework-main (master)
$ git commit -m 'first commit'
- 方式二:使用可视化工具TortoiseGit,在->TortoiseGit官网找到对应版本并下载,安装完成后右击源码项目就可以直接初始化。