github Spring源码导入eclipse调试踩坑记录

4 篇文章 0 订阅
2 篇文章 0 订阅

github Spring源码导入eclipse调试记录

1. 本文一路踩坑,一路排错,建议先通读一遍到最后,
2. 本文最后是成功将spring源码导入eclipse的,所以啊不用慌

Spring源码调试,遇到很多坑,这里记录一下过程,按部就班。
首先声明,本人之前没用过gradle,今天刚看了点皮毛,行家勿喷

  • 环境
    • idea2018.2 ==》eclipse4.22
    • jdk 15.0.2
    • spring framework 5.3.17
    • gradle 7.2
      • 需要配置GRADLE_HOME
      • 和 GRADLE_USER_HOME(可以粗略理解为本地仓库会在这里生成)
    • win10
    • groovy 插件e4.22
    • 凡是用到 gradle 采用自定义配置
  1. 首先下载源码,到github首页输入地址下载:
    检索 spring-projects/spring-framework,我下载的是最新版本的
    在这里插入图片描述
git clone https://github.com/spring-projects/spring-framework.git

等他下载完,我们需要特别关注 以下文件
在这里插入图片描述
其中 gradle\wrapper\gradle-wrapper.properties 里面有一个gradle版本号,需要关注,表示的是作者用的gradle版本号,gradle版本最好保持一致,可以自行下载。
gradle 和 jdk 版本有兼容要求,注意jdk满足最低版本

源码下载完,可以备份一份,万一后面那啥直接从头开始,比较干净。

下载好如下:
在这里插入图片描述
看了一下,他此时是 6.0.0 版本,不慌,我们切换一下 tag 就行
在这里插入图片描述
完事现在OK 了
在这里插入图片描述
后面,我参考
https://blog.csdn.net/u013469325/article/details/106575704/ 配置

执行构建(官方md里面叫 precompile,预编译)

  • ./gradlew :spring-oxm:compileTestJava
  • ./gradlew :spring-core:compileTestJava
PS D:\MyWorkHome\CodeSpaceSrc\spring-framework> ./gradlew :spring-oxm:compileTestJava
Configuration on demand is an incubating feature.

> Task :spring-core:compileJava
D:\MyWorkHome\CodeSpaceSrc\spring-framework\spring-core\src\main\java\org\springframework\core\metrics\jfr\FlightRecorderStartupEvent.java:19: 错误: 程序包jdk.jfr不存在
import jdk.jfr.Category;
              ^
D:\MyWorkHome\CodeSpaceSrc\spring-framework\spring-core\src\main\java\org\springframework\core\metrics\jfr\FlightRecorderStartupEvent.java:20: 错误: 程序包jdk.jfr不存在
import jdk.jfr.Description;

完事报错? 查了一下,是说jdk版本太低(我用的 1.8.0.121),正好我本地有高的,重新配成 15.0.2的

完事又报错:
在这里插入图片描述
此处参考:
https://www.cnblogs.com/lenmom/p/11912497.html
https://www.jianshu.com/p/e96e8d4c3332
如果你看官方的 md 说明,其中是有说明的,是说他把 warning 当成 error处理了,这里要排除这个:
那我们用工具找一下(VScode),删除那个
在这里插入图片描述

在这里插入图片描述

文件名:

  1. CompilerConventionsPlugin.java
  2. spring-beans.gradle

完事,报新的错误
在这里插入图片描述

* What went wrong:
Execution failed for task ':spring-beans:compileGroovy'.
> 错误: 无效的标记:

(这时候凌晨0:11,谁再跟我讲gradle好用,我跟谁急)
在这里插入图片描述
emmmm,,上面粗暴的 删了单词,看来有点 go 的意思(不用的东西不留),那咱就把他注释了
在这里插入图片描述
好么,他是调用链
在这里插入图片描述
那就不整这个 spring-beans.gradle,还原文件,结果,成功了
🙄🙄🙄
在这里插入图片描述
又成功了
在这里插入图片描述
至此,两个预编译的命令成功了。


IDEA导入Spring源码
继续回到 https://blog.csdn.net/u013469325/article/details/106575704/

这边有一个注意点,先看文章:由于本人之前学了一下,心存怀疑,结果一搜索,,还真有讲究
https://blog.csdn.net/wusj3/article/details/110791719
在这里插入图片描述

大概意思是说,咱本地可以有一个 gradle,项目里面有一个 gradle,有点 node的感觉,可以有一个全局的,也可以再项目里面单独啥的,然后咱的idea版本可能比较低,跟原答主不一样。
(这个图里面有错误,看下面的图,这里粗心导致下面又开始排错,嗐)
在这里插入图片描述
完事,又报错:
在这里插入图片描述

java.lang.NoSuchMethodError

NoSuchMethodError,那就不要有了,我打算找到那个方法把它注释掉。
在这里插入图片描述
可能是由于我之前按照官网说法 把一个东西排除了,我把添加回去
在这里插入图片描述
再来:
在这里插入图片描述
结果还是不行,找到:
https://blog.csdn.net/u010132847/article/details/119535960

大概意思是说 idea版本太低,炸裂,还有就是我之前的 仓库配的有问题

这里有必要插入一张图:
https://blog.csdn.net/u010657219/article/details/53811150
在这里插入图片描述
反正我就是要用我自己的:
(最后的倔强)
在这里插入图片描述
决定升级 升级IDE到IntelliJ IDEA 2021.1.2 ?
开玩笑,用 eclipse 2020.06 搞,什么??好么,它只到jdk14,
直接上最新的eclipse,我去下一个!!
现在是凌晨 1:57,网速 20M,

https://blog.csdn.net/qq_27645299/article/details/72900801 版本号对照,结果版本太新,还得重下。。。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
跟着文档一步一步,因为之前 排除过错误,这里应该会顺利
在这里插入图片描述

我还是太年轻:
在这里插入图片描述
重来:
直接 git 回退代码,
根据之前的经验,改那个 -Werror可以抵消 那个 预编译的问题
在这里插入图片描述
在这里插入图片描述
成功啦!!😀
在这里插入图片描述

next
在这里插入图片描述
finish
在这里插入图片描述

Description	Resource	Path	Location	Type
Project at 'D:\MyWorkHome\CodeSpaceSrc\spring-framework' can't be named 'spring' because it's located directly under the workspace root. If such a project is renamed, Eclipse would move the container directory. To resolve this problem, move the project out of the workspace root or configure it to have the name 'spring-framework'.	spring-framework		line 0	Gradle Error Marker

还有点小问题 ,emmm,解决了
在这里插入图片描述
在这里插入图片描述
哈哈哈哈,完成啦!
在这里插入图片描述

能睡个好觉啦!! 了😃😄😆

明天还得上班呐
😪

鸣谢:
https://blog.csdn.net/u013469325/article/details/106575704/
https://www.cnblogs.com/lenmom/p/11912497.html
https://www.jianshu.com/p/e96e8d4c3332
https://blog.csdn.net/wusj3/article/details/110791719
https://blog.csdn.net/u010132847/article/details/119535960
https://blog.csdn.net/u010657219/article/details/53811150
https://blog.csdn.net/qq_27645299/article/details/72900801

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秋夜白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值