1. 源码获取
![](https://img.haomeiwen.com/i15304817/7d61ecaa500b7708.png)
![](https://img.haomeiwen.com/i15304817/5351bf969910bc82.png)
然后打开IDEA,进行以下操作
![](https://img.haomeiwen.com/i15304817/7ac2cef7cd080cce.png)
将刚才github的源码链接粘贴到这
![](https://img.haomeiwen.com/i15304817/586b3e57050fefe0.png)
下载源码的过程可能会有点长,如果网速不是很给力的话,可以考虑下载源码的zip包,下载完成后解压,将工程导入IDEA中,然后开始编译源码。
2. 编译源码
如果编译不通过,先注释掉spring-beans.gradle中的28行,然后继续。
![](https://img.haomeiwen.com/i15304817/72ee2472c5776c4b.png)
![](https://img.haomeiwen.com/i15304817/e445a73625515f1c.png)
然后继续build project。
![](https://img.haomeiwen.com/i15304817/1e5243df1e40f60b.png)
还是报错,大家不要着急。为了避免第三方class的冲突,Spring把最新的cglib和objenesis给重新打包(repack)了,它并没有在源码里提供这部分代码,而是直接将其放在jar包当中,这也导致了我们拉取代码后出现的编译错误。解决方案:在spring根目录下面执行gradle objenesisRepackJar 和 gradle cglibRepackJar。
![](https://img.haomeiwen.com/i15304817/cfd8090d7f39d4ad.png)
然后再次build project后,又来了一个新的报错:
![](https://img.haomeiwen.com/i15304817/cad7f808df328525.png)
问题原因:从上图的aspect关键字可以看出,AOP的实现会依赖到AspectJ,所以我们需要ajc.exe来执行编译(我们可以将ajc命令当成增强版的javac命令)
问题解决:下载AspectJ的稳定版本(AspectJ Downloads | The Eclipse Foundation):
![](https://img.haomeiwen.com/i15304817/752bf7e44b314b71.png)
AspectJ安装
打开dos窗口,切换到aspectj-1.9.0.jar所在目录,运行java -jar aspectj-1.9.0.jar命令,打开AspectJ的安装界面,点击next,然后install,done。
![](https://img.haomeiwen.com/i15304817/b8e603f99fdd68da.png)
![](https://img.haomeiwen.com/i15304817/e23e1428d485f57c.png)
![](https://img.haomeiwen.com/i15304817/2cd9e128b79954eb.png)
为spring-aspect工程添加Facsets
![](https://img.haomeiwen.com/i15304817/df7b683e11daa322.png)
更改编译器
![](https://img.haomeiwen.com/i15304817/261f01dcd9480b3b.png)
再次build project后,还是报错。
![](https://img.haomeiwen.com/i15304817/275eb3e1f53c9760.png)
查看spring-oxm下的spring-oxm.gradle文件后,发现可以在spring-oxm项目目录下执行下面两个命令:
1.gradle genCastor
2.gradle genJaxb
![](https://img.haomeiwen.com/i15304817/67be8be5bb2dad15.png)
再次build project后,还是报错。
![](https://img.haomeiwen.com/i15304817/f9b21f86bb0c86a0.png)
问题解决:找到对应的报错行,注释掉
![](https://img.haomeiwen.com/i15304817/a65cfaab8740446b.png)
至此,大功告成,666!是不是好难啊!
网友评论