摘要:Spring源码解析,Spring源码导入Eclipse
搞了这么就Java开发,用了无数次Spring,之前看源码都是直接在eclipse上按住crtl建鼠标点击进去看的,并没有真正的把Spring源码拉下来,直接在上面看和备注。昨晚下定决心试试,觉得应该很简单,百度大把,然后按百度的流程如下。
1、下载Spring源码
这里下载的是比较稳定的Spring3.x版本
下载链接:https://github.com/spring-projects/spring-framework/tree/3.2.x
当然你也可以选择你喜欢的版本,比如4.x,5.x什么的。
2、下载gradle插件
此时并不能直接导入eclipse,因为这些项目还没进行编译,需要通过gradle进行编译后才能被eclipse所识别,所以在此之前必须安装好gradle插件
下载链接:https://downloads.gradle-dn.com/distributions/gradle-3.0-bin.zip
当然你也可以百度下下载别的版本。
按maven的方式,将gradle加入到环境变量中(话说这些简单的就不截图演示了)。
3、编译Spring
安装完gradle插件后,通过cmd进入到指定的项目根目录下执行 gradle cleanidea eclipse(比如我想编译spring-core,我的项目位置在E:/spring/spring-core,则需要进入到E:/spring/spring-core下执行 gradle cleanidea eclipse,如果在E:/spring 这个目录下执行的话会把所有的spring模块都进行编译)。
接下来就是血泪新酸的过程了,狂爆类似下面的错误
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':spring-orm:eclipseClasspath'.
> Could not resolve all dependencies for configuration ':spring-orm:compile'.
> Could not resolve org.apache.geronimo.specs:geronimo-jms_1.1_spec:1.0.1.
Required by:
org.springframework:spring-orm:3.2.19.BUILD-SNAPSHOT > org.apache.openjpa:openjpa:1.1.0
> Could not resolve org.apache.geronimo.specs:geronimo-jms_1.1_spec:1.0.1.
> Could not parse POM https://repo.spring.io/libs-release/org/apache/geronimo/specs/geronimo-jms_1.1_spec/1.0.1/geronimo-jms_1.1_spec-1.0.1.pom
> Could not find org.apache.geronimo.specs:specs:1.1.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
然后百度说要改什么文件,试过了也不行!
然后百度说要换Spring版本,我把它换成4.x和5.x也不行!
然后百度说要换gradle的版本,我下了下面三个版本,也不行!
https://downloads.gradle-dn.com/distributions/gradle-3.5-bin.zip
https://downloads.gradle-dn.com/distributions/gradle-4.9-bin.zip
https://downloads.gradle-dn.com/distributions/gradle-4.9-all.zip
慢慢,本来网络就垃圾,时间到了晚上12点,百度看到有一个人说他用Spring3.x,然后gradle-4.9-all.zip来成功了!
我开心的下载了一波,等了十几二十分钟才下载完,试了下,他喵还是不行!
直接放弃!
what the hell!
我知道,一切的根源都是因为版本冲突环境的问题,但是我真的找不到适合的版本!
只能带着无奈和彷徨去睡觉!
时间到达了,第二天,突然之间想到,我下载的Spring里面不是有一个文件:import-into-eclipse.bat么
这个是Spring自己推荐的方式,会用推荐的gradle版本,应该会OK把,赶忙下载了一个Spring4.x ,双击该文件(linux对应的是import-into-eclipse.sh)
,天哪,太感动了,终于出现了如下代码:
:spring-websocket:eclipseJdtPrepare
:spring-websocket:eclipseJdt
:spring-websocket:eclipseProject
:spring-websocket:eclipseSettings
:spring-websocket:eclipseWstComponent
:spring-websocket:eclipse
BUILD SUCCESSFUL
Total time: 1 hrs 30 mins 18.11 secs
话说,晚上回家用3.x试了下,也不行!果然是千难万难!
—————-手动分割线———————
4、将要分析的项目到入到eclipse
第三步执行完后,我们就可以把所有项目都导入到eclipse啦,因为我的是4.x,所以这里要记得把eclipse的jdk改为1.8,不然到时候要一个个改。
缺少groovy插件,当你Import整个文件夹的时候,会提醒你Groovy要安装,直接点击安装即可,当然也可以手动安装在eclipse的 Help -> Install New Software 中,添加groovy的下载连接:http://dist.springsource.org/milestone/GRECLIPSE/e4.4/
5.总结
在此spring的源码就导入成功了,就可以对spring的源码进行学习,在整个过程中,可以会遇到各种各样的情况,所以需要耐心等待以及解决。