准备工作
jdk:根据文档说明jdk需用到1.7的版本,如果低于1.7版本会出错。
eclipse:我用的是juna。设置IDE的jre为1.7版本。
STS:下载最新的STS插件;
gradle:spring源码使用gradle来构建,官网地址:http://www.gradle.org ;
git或svn:spring代码托管到git,两个工具都可以下载,当然推荐git,源码地址:http://projects.spring.io/spring-framework/
groovy插件:官网地址:http://groovy.codehaus.org/ 不知道为什么,我从官网下载插件eclipse插件时总是不成功,过程中断掉,感觉上是服务器不稳定,试了很多次都失败,最后使用csdn上的资源来完成了插件的安装:http://download.csdn.net/detail/zhangshuzhi/4474060
关于什么是groovy,在IBM Developer上找到两篇还不错的入门级介绍,有兴趣可以看看
获取源码并编译
使用git下载资源: git clone https://github.com/spring-projects/spring-framework.git
下载完成后,源码目录如上图所示,其中有gradlew.bat , import-into-eclipse.bat两个批处理文件:前者是windows下用来构建项目的,即对gradle的一个批处理封装;后者是编译后引导导入eclipse的批处理文件;
首先执行双击执行 gradlew.bat ,可能由于报错,运行一会儿就直接退出来了,看不到内容;因此,改为命令行执行: >> gradlew build –x test
基本上,可能会出现如下问题:
解决方式有如下三种,任意选择:
由于要下载很多依赖jar包之类的,过程会比较漫长,同时网络也要求靠谱一些;过程当中常常出现某些下载失败或个别出错之类的,不用惊慌着急,通常再次执行命令 >> gradlew build –x test 即可,它会跳过前面完成的步骤,继续未竟之伟业*^_^* 。
比如,下面是我编译过程中出现得一个问题,从错误可以看到应该是一个下载失败了,只需再次运行命令,它会继续下载。
导入eclipse
执行 import-into-eclipse.bat 命令,根据提示一步步来做,其中第二步导入工程后,可能出错,具体如截图所示:
其中,绝大部分问题跟踪进去,都能够发现是不同的子模块引入了同一个jar包的不同版本,当前工程虽然引入了高版本的jar包,但是由于编译顺序低于引用的工程顺序,所以出现了问题,解决的办法如下图所示,把所有的依赖工程放到本身依赖的jar包下面:
以上步骤解决了绝大部分问题,但是不包括 spring-beans-groovy 的问题,原因是它用到了groovy,需要eclipse groovy-plugin插件,上面准备工作中提到的插件下载并安装重启后,可进行如下操作:
经过以上步骤,导入完成!
小结
整整花了一天时间来做这个工作,期间各种问题,各种曲折。因为过程中遇到问题没有做详细记录,上面的是为了这篇博客而重新编译时出现的一些问题,不一定全,但希望在做同样事情的朋友可以参考并能有所帮助。
之前一直用的cvs,svn来进行版本管理,git接触得很少;项目编译是ant,maven也是刚接触,现在居然用到了据说是第三代的gradle,真实技术更新换代太快,累shi程序员啊。groovy也是没有接触过,由于过程中要解决问题所以通过度娘进行了一些了解,算长了见识。
总算搭好环境了,可以慢慢琢磨里面的东西咯,首先文档生成就感觉很神奇,慢慢探究把`(*∩_∩*)′