本人最近想要研究spring的源代码,但当要导入spring sub project到Eclipse里面去的时候遇到了不少麻烦(其实都怪自己想当然)。
找到spring-framework的gitHub主页(),也没看README部分的说明就直接copy了工程的源码下载地址https://github.com/spring-projects/spring-framework.git到SVN去下载,然后想直接通过check out把tags下面的v3.2.4.RELEASE目录下面的spring-core sub project 导入成Eclipse里面的工程。check out完成后发现里面的目录结构采用的是maven风格,于是直接转换成maven工程,转换成功后发现有许多错误,依赖jar包没有导入进来,刚开始本人还想直接通过maven一个个来导入,但是后来发现这个过程无法进行,依赖的jar太多根本进行不下去,一个子项目还好,spring源码里面有十几个子项目。忙活了半天无赖只好放弃,继续寻找其他方案。结果在spring-framework的gitHub主页上看到构建源码的文档,发现spring framework采用Gradle自动构建,经过自己的摸索终于一次性完成了所有子项目的导入。
具体步骤如下:
1.从svn里面选择一个要研读的版本(我这里是选的tags/v3.2.4.RELEASE)导出到一个目录下面(如:D:/opensource/spring-framework)。
2.安装Gradle软件,安装过程很简单,具体看官方document 有详细的步骤。
3.进入D:/opensource/spring-framework目录里面有一个import-into-eclipse.bat批处理文件,顾名思义,双击出现控制台界面,连续按两次回车键,就可以开始自动构建了,构建过程需要花很长时间(下载各种依赖jar包和dom文件),也许是我家里网速不好吧,用了几个小时。中间还经常出现停止不动的情况,按Ctrl+c终止运行,再一次双击import-into-eclipse.bat文件重复上述过程即可(会接着上次构建的位置继续构建),到构建完成后控制台会自动关闭。
4.在Eclipse里面菜单File--->import选择General下面的Exsiting projects into workspace,这样就导入完成了,不知怎么的会有几个源文件文件出现错误,比如@Override了一个不存在的方法(处理方法是去掉@Override注解即可),注意有些sub project要jre1.7以上(里面引用了1.7里面的新的api)。