Spring5.0.X源码阅读环境搭建Eclipse4.6.3(neon)

绪论

Spring在J2EE中具有极高的地位,所以对于Spring源码的阅读,对于Java开发者来说能学习到很多的经验。很多人在搭建Spring源码环境的时候会出现很多的问题,为了让后面的人少走弯路,所以将自己的搭建经验与大家分享。

1.环境准备

下载Eclipse,搭建是Eclipse4.6.4(neon)。

1.1 Eclipse安装Gradle插件

由于Spring是用Gradle构建的,建议下载Gradle的Eclipse

Eclipse Version Type Update Site
Oxygen (4.7) snapshot http://download.eclipse.org/buildship/updates/e47/snapshots/2.x
Neon (4.6) release http://download.eclipse.org/buildship/updates/e46/releases/2.x
Neon (4.6) milestone http://download.eclipse.org/buildship/updates/e46/milestones/2.x
Neon (4.6) snapshot http://download.eclipse.org/buildship/updates/e46/snapshots/2.x
Mars (4.5) release http://download.eclipse.org/buildship/updates/e45/releases/2.x
Mars (4.5) milestone http://download.eclipse.org/buildship/updates/e45/milestones/2.x
Mars (4.5) snapshot http://download.eclipse.org/buildship/updates/e45/snapshots/2.x
Luna (4.4) release http://download.eclipse.org/buildship/updates/e44/releases/2.x
Luna (4.4) milestone http://download.eclipse.org/buildship/updates/e44/milestones/2.x
Luna (4.4) snapshot http://download.eclipse.org/buildship/updates/e44/snapshots/2.x
Kepler (4.3) release http://download.eclipse.org/buildship/updates/e43/releases/2.x
Kepler (4.3) milestone http://download.eclipse.org/buildship/updates/e43/milestones/2.x
Kepler (4.3) snapshot http://download.eclipse.org/buildship/updates/e43/snapshots/2.x
Juno (4.2) release http://download.eclipse.org/buildship/updates/e42/releases/2.x
Juno (4.2) milestone http://download.eclipse.org/buildship/updates/e42/milestones/2.x
Juno (4.2) snapshot http://download.eclipse.org/buildship/updates/e42/snapshots/2.x

安装完插件后指定一下gradle的本地仓库位置:
这里写图片描述
也可不指定,不指定的话,会在C:\Users\{user}.gradle目录。user表示你的计算机用户名。

1.2 下载源码

spring的源码在GitHub上可以下载到:
Spring源码地址

复制项目地址:
这里写图片描述
通过git导入项目:
这里写图片描述
这里写图片描述

1.3 导入spring-framework源码

右键–>import
这里写图片描述

2.搭建过程

导入报错后,很多人可能不知道怎么办。没关系,带大家一步步分析,把错误原因找到,一个个的解决掉。

2.1下载Groovy插件

由于spring是需要groovy的支持,下载groovy插件:
下载地址
根据我的Eclipse的版本,我选择的是4.6的:
这里写图片描述

2.2 解决错误

解决依赖报错的最快方式是在Gradle Tasks找到ide:
这里写图片描述
点击eclipse,项目中所有的依赖和配置都会生成到你的ide如果仍有部分代码报错。请参考下面内容。
导入代码后效果如下:
这里写图片描述
对于这些错误不用慌,一个个的解决。点开一个报错的项目spring-aop随便找到一个报错的类:
这里写图片描述
很明显,通过错误可们看出,这个错误是由于缺包导致的。通过阅读源码发现spring为了避免第三方class的冲突,把最新的cglib和objenesis给repack了。可以到http://cglib.sourceforge.NEThttp://objenesis.org中下载最新的两个包,
但并不符合spring框架本身的结构。

这里提供现我下载的两个现成的包:
spring源码repack的两个包

右键点点击项目–>properties–>找到Java Build Path
这里写图片描述
把刚刚的两个jar包导入到lib
这里写图片描述
把对应的包导入到对应的项目。
仍然发现还有四个模块报错:
这里写图片描述
打开spring-aspects中报错的一个类发现:
这里写图片描述
在类中引用了AnnotationCacheAspect.aj,但是无法引用到,这明显是缺少了某些插件。*.aj需要jadt插件的支持。

2.3 安装AJDT插件

下载地址
这是对应Eclipse我安装的版本:
这里写图片描述
复制url
Help–>Install New Software
安装:
这里写图片描述
这里写图片描述
插件安装小技巧:由于都是安装的插件都来自国外,过程中可能会报错,报错后点detail把报错的jar的地址复制到浏览器下载,如果访问不了,多试几次,下载完放到eclipse的plugin目录下
安装重启后重新导入一下代码。
我们还发现有一部分代码报错,但是这些包都是jdk中的:
这里写图片描述
把项目的jre重新导入错误不再发生。
这里写图片描述
好了,把这个错误解决后,发现还有一个模块仍然报错:
这里写图片描述
很明显,还是缺包,不过这个仅仅是test中的代码报错。在gradle里面build一下,会把缺失的包下载过来。
这里写图片描述
等包下载完后,再点一下eclipse。
这里写图片描述
这个时候发现在Build Path的lib下面多了很多的依赖包。
这里写图片描述
其实上面缺失的包,同样可以通过这种方式来解决。
所有的错误解决完,很干净。
这里写图片描述

猜你喜欢

转载自blog.csdn.net/m0_37797991/article/details/76696760