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

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,我下载的是最新版本的
    github Spring源码导入eclipse调试踩坑记录_第1张图片
git clone https://github.com/spring-projects/spring-framework.git

等他下载完,我们需要特别关注 以下文件
github Spring源码导入eclipse调试踩坑记录_第2张图片
其中 gradle\wrapper\gradle-wrapper.properties 里面有一个gradle版本号,需要关注,表示的是作者用的gradle版本号,gradle版本最好保持一致,可以自行下载。
gradle 和 jdk 版本有兼容要求,注意jdk满足最低版本

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

下载好如下:
github Spring源码导入eclipse调试踩坑记录_第3张图片
看了一下,他此时是 6.0.0 版本,不慌,我们切换一下 tag 就行
github Spring源码导入eclipse调试踩坑记录_第4张图片
完事现在OK 了
github Spring源码导入eclipse调试踩坑记录_第5张图片
后面,我参考
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的

完事又报错:
github Spring源码导入eclipse调试踩坑记录_第6张图片
此处参考:
https://www.cnblogs.com/lenmom/p/11912497.html
https://www.jianshu.com/p/e96e8d4c3332
如果你看官方的 md 说明,其中是有说明的,是说他把 warning 当成 error处理了,这里要排除这个:
那我们用工具找一下(VScode),删除那个
github Spring源码导入eclipse调试踩坑记录_第7张图片

github Spring源码导入eclipse调试踩坑记录_第8张图片

文件名:

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

完事,报新的错误
github Spring源码导入eclipse调试踩坑记录_第9张图片

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

(这时候凌晨0:11,谁再跟我讲gradle好用,我跟谁急)
github Spring源码导入eclipse调试踩坑记录_第10张图片
emmmm,,上面粗暴的 删了单词,看来有点 go 的意思(不用的东西不留),那咱就把他注释了
github Spring源码导入eclipse调试踩坑记录_第11张图片
好么,他是调用链
github Spring源码导入eclipse调试踩坑记录_第12张图片
那就不整这个 spring-beans.gradle,还原文件,结果,成功了

github Spring源码导入eclipse调试踩坑记录_第13张图片
又成功了
github Spring源码导入eclipse调试踩坑记录_第14张图片
至此,两个预编译的命令成功了。


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

这边有一个注意点,先看文章:由于本人之前学了一下,心存怀疑,结果一搜索,,还真有讲究
https://blog.csdn.net/wusj3/article/details/110791719
github Spring源码导入eclipse调试踩坑记录_第15张图片

大概意思是说,咱本地可以有一个 gradle,项目里面有一个 gradle,有点 node的感觉,可以有一个全局的,也可以再项目里面单独啥的,然后咱的idea版本可能比较低,跟原答主不一样。
(这个图里面有错误,看下面的图,这里粗心导致下面又开始排错,嗐)
github Spring源码导入eclipse调试踩坑记录_第16张图片
完事,又报错:
github Spring源码导入eclipse调试踩坑记录_第17张图片

java.lang.NoSuchMethodError

NoSuchMethodError,那就不要有了,我打算找到那个方法把它注释掉。
github Spring源码导入eclipse调试踩坑记录_第18张图片
可能是由于我之前按照官网说法 把一个东西排除了,我把添加回去
github Spring源码导入eclipse调试踩坑记录_第19张图片
再来:
github Spring源码导入eclipse调试踩坑记录_第20张图片
结果还是不行,找到:
https://blog.csdn.net/u010132847/article/details/119535960

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

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

https://blog.csdn.net/qq_27645299/article/details/72900801 版本号对照,结果版本太新,还得重下。。。
github Spring源码导入eclipse调试踩坑记录_第23张图片

github Spring源码导入eclipse调试踩坑记录_第24张图片
github Spring源码导入eclipse调试踩坑记录_第25张图片
github Spring源码导入eclipse调试踩坑记录_第26张图片
跟着文档一步一步,因为之前 排除过错误,这里应该会顺利
github Spring源码导入eclipse调试踩坑记录_第27张图片

我还是太年轻:
github Spring源码导入eclipse调试踩坑记录_第28张图片
重来:
直接 git 回退代码,
根据之前的经验,改那个 -Werror可以抵消 那个 预编译的问题
github Spring源码导入eclipse调试踩坑记录_第29张图片
github Spring源码导入eclipse调试踩坑记录_第30张图片
成功啦!!
github Spring源码导入eclipse调试踩坑记录_第31张图片

next
github Spring源码导入eclipse调试踩坑记录_第32张图片
finish
github Spring源码导入eclipse调试踩坑记录_第33张图片

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,解决了
github Spring源码导入eclipse调试踩坑记录_第34张图片
github Spring源码导入eclipse调试踩坑记录_第35张图片
哈哈哈哈,完成啦!
github Spring源码导入eclipse调试踩坑记录_第36张图片

能睡个好觉啦!!

明天还得上班呐

鸣谢:
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

你可能感兴趣的:(Java,eclipse,intellij,idea,eclipse,spring)