网上有一堆的资料关于如何搭建spring源码环境。
·安装GitHub下载新版的spring源码到本地
·下载Gradle之后通过“gradle cleanIdea eclipse”命令将spring源码转换成可导入eclipse的工程
·导入足够的spring工程之后,会发现spring-core下缺少spring-cglib-repack-3.2.0.jar和spring-objenesis-repack-2.2.jar两个包
通过阅读源码发现为了避免第三方class的冲突,spring把最新的cglib和objenesis给repack了,
而且并没有提供这部分的代码在源码里,直接在jar包当中。
根据package-info的提示可以到http://cglib.sourceforge.net和http://objenesis.org中下载最新的两个包,
但并不符合spring框架本身的结构。
于是找来之前下载的spring框架开发环境的spring-framework-4.2.4.RELEASE.zip,
解压当中的spring-core-4.2.4.RELEASE.jar包,分别取出/org/springframework/cglib和/org/springframework/objenesis,
然后使用jar命令打包成spring-cglib-repack-3.2.0.jar和spring-objenesis-repack-2.2.jar放在spring-core工程的build/lib目录下面,
refresh以后编译成功。