将Spring源码导入到eclipse

1、下载Spring源码

既然要导入到eclipse,首先需要去下载spring源码,要不然从哪导入~
spring 的GitHub托管地址:https://github.com/spring-projects/spring-framework
点击clone or download 将源码下载到本地,我下载的是zip文件
在这里插入图片描述
下载完成后,解压看到如下目录:
在这里插入图片描述

2、下载安装gradle

spring是通过gradle 构建,我们需要安装gradle环境。去官网下载:https://gradle.org ,下载完成后,设置环境变量 GRADLE_HOME = gradle安装目录 (C:\Program Files\gradle-5.3.1), 并在path中加入;%GRADLE_HOME%\bin;
安装完成可在cmd中测试 gradle -v 会显示出gradle 的安装信息,表示安装成功。
在这里插入图片描述

3、编译

spring源码下载后,并不能直接导入eclipse,需要通过gradle编译转换,比如我们要对spring-beans模块进行转换:
首先进入到spring-beans目录
执行gradle命令:gradle cleanIdea eclipse

在这里插入图片描述
回车之后,会自动编译,编译成功之后如上图所示,我们耐心等待。中间可能会出现各种错误,大部分是网络问题,可以多尝试几次。
然后其他模块也一样的方式去编译,直到编译成功。
转换完后我们可以看到每个模块下多了两个文件:.classpath和.project

除此之外,也可以参考 spring-framework 目录中的 import-into-eclipse.md,可以按照其中的steps进行操作。

网上也有其他的编译方式,比如进入下载的目录,一次性编译我认为这种方式虽然方便,但是不太友好,如果中间编译出错的话,排查起来不太容易。

4、导入到eclipse

在Eclipse菜单File->import选择General下面的Exsiting projects into workspace,这样就导入完成了。如图:
在这里插入图片描述
以上导入发现项目上有红色感叹号,说明项目还有问题,这就对了,哪有这么容易一次性成功的。。。我们依次看下项目上的问题…

5、导入后的问题处理

因为spring各模块之间是有依赖的,我们不需要解决所有的问题,有的是因为被依赖的项目出错,而导致其他项目出错的。

  • 1、首先,以spring-beans为切入点,右键项目spring-beans–>Build Path–>Config Build Path…切换到Libraies ,发现少了spring-cglib-repack-3.2.11.jar和spring-objenesis-repack-3.0.1.jar两个jar包
    在这里插入图片描述
    解决办法:在spring-framework目录下执行 gradle objenesisRepackJargradle cglibRepackJar命令,会在Spring-framework\spring-core\build\libs目录下生成jar包。在重新clean就好
    在这里插入图片描述
  • 2 、spring-oxm缺少jaxb.jar 在这里插入图片描述
    解决办法:
    查看spring-oxm下的spring-oxm.gradle文件后,发现可以在spring-oxm项目目录下执行下面两个命令:
     1. gradle genCastor
     2. gradle genJaxb
    这里我们执行 2 就好 在这里插入图片描述然后把spring-oxm删除掉,在重新导入即可。
    导入成功之后可看到没有错误,然后就可以顺利的阅读源代码了~

另外,项目中还有另外一个GroovyDynamicElementReader的java代码问题,这是因为需要在eclipse中安装groovy插件,在eclipse中安装groovy插件详细步骤可以参考引用另外一篇博文https://blog.csdn.net/qq_27645299/article/details/72900801

安装成功后,项目结构如图:
在这里插入图片描述
我们随便在spring-bean项目中找一个BeanUtilsTests中的一个测试方法,执行Junit Test ,执行完成后出现我们期待的Green Bar !!!
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值