eclipse怎么导入jar包重新编译_记一次spring5源码的完整编译过程

7584abbdedf4a0724f456b0aac5e617c.png

学习java已有3年之久,spring一直停留在应用阶段,两次面试阿里的经历让我深感学习spring源码的重要性,废话不多说,开搞!

1、环境:

jdk1.8+spring5+gradle4.7+eclipse4.6

如果要参考该教程,环境最好一样(eclipse除外),因为以前编译过spring3,由于环境问题折腾了好久。

2、检测jdk版本java -version

c6f5376a81f6044bf48e25f667fef683.png

由于此次编译的是spring5,jdk版本不能太低

2、下载spring源码

spring源码托管在github上:https://github.com/spring-projects/spring-framework(还没安装git的同学是时候学习一下了,不过此次编译可以不依赖git)

da4a16131a84a6d1d3ad3e9df595ba64.png

下载下来解压:

e108951167ae90602b30a52e89d2d4e8.png

3、安装gradle(一款基于Groovy的构建工具,比maven更简洁)

传送门:https://gradle.org/releases/

选择4.7版本下载

设置环境变量:

新建用户变量GRADLE_HOME,值为gradle的安装目录,我的安装目录如下:

0979c4b89e9997bf8be4bde2894a4d5e.png

设置环境变量:

f6b31b04ba43558223e971722eaf77f0.png

检测gradle是否安装成功:

da433e9dadcbb67da6b41a11901b9ddc.png

出现上图说明安装成功

4、将spring工程转换成eclipse可识别的工程

进入spring的解压目录,执行下面命令:

gradle cleanidea eclipse

(网上普遍反应这个步骤会报错,反正我是一次通过,以前编译spring3的时候在这里的确折腾了很久)

此时直接导入eclipse spring-core工程会报错缺少jar包:spring-cglib-repack-x.x.x.jar、spring-objenesis-repack-x.x.jar

要在spring的解压目录下执行下面这两个命令:

gradle objenesisRepackJar
gradle cglibRepackJar

5.此时你可以把spring工程导入到eclipse了

756a4f998ce3161af52fd1031f4d02f4.png

先导入spring-jcl,不然spring-core会报错(这些工程之间的依赖关系自己去摸索吧)

6、解决spring-bean工程的代码报错

缺少groovy插件,

安装groovy插件:

在eclipse的 Help -> Install New Software 中,添加groovy的下载连接:

http://dist.springsource.org/snapshot/GRECLIPSE/e4.6/(这里最后的e4.6代表你eclipse的版本别搞错了,不然安装不成功别找我)

这个安装groovy插件话说有点坑,开了vpn速度也提不上去,哪位老铁有好的方法烦请告知一声哈

7、安装groovy插件后会报一个groovy编译版本的错误,spring5用的是2.5的编译版本,而我们下载的groovy默认是2.6版本,查看groovy编译版本方式:windows->perferences->groovy

fb99fdb2bf3ef940f2a922739b5cb65e.png

我已经改好了,注意这里不要想当然的选下面的Switch to试图切换编译版本,本人亲测行不通,不过可以用下面的方式:

Help->Install New Software
631a90f43216e64a9d14709a0e1f7201.png

找到安装的groovy的插件(我的已经删了卸载了2.6和2.4版本的了):

a21d093bb1f769262103e0220f7cf5d0.png

原本有2.4、2.5和2.6三个编译版本,我们把2.4和2.6的给卸载了(选中2.4和2.6点击下面的Uninstall按钮),然后重启eclipse

8、解决spring-oxm报错问题(缺少castor和jax)

在spring的解压目录下执行下面命令

1.gradle genCastor
2.gradle genJaxb

然后去spring-oxm/build/classes下面看看,如果已生成jar包则应该不会再报错(记得clean一下)

不过我这里有些奇怪,执行上面两条命令后竟然生成的是解压后的文件,如果你也一样的话,还要继续以下步骤:

在classes目录下分别执行下面两条命令(自己打jar包):

jar cvf jaxb.jar jaxb\org
jar cvf castor.jar castor\org

然后回到eclipse,右键spring-oxm->build Path:

在Libraries中把原本的castor和jaxb删除,然后再重新导入我们手动打的jar包

到此为止,spring5的源码导入算是成功了:

2210bf8094b56a3ca45343c8fc4fc545.png

出处:csdn.net/coder_no/article/details/83315981

8f363890f7dd07241c1a4bdcbfeea1c5.png

点个“在看”哦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值