想学习研究下Spring源码,就在网上搜索一堆资料,别人的东西在自己的电脑上总是有问题。总结下自己的使用方法,以便备忘。
前提:导入eclipse成功,导入不了myeclipse。
1、准备条件:
(1).必须jdk7+不解释,不然报错。
(2).spring源码在github上管理,你可以使用git,也可以使用SVN下载(我使用的是svn)。
svn根地址为:https://github.com/SpringSource/spring-framework/
我下载编译是的v3.2.4RESEASE,地址为:https://github.com/SpringSource/spring-framework/tags/v3.2.4.RELEASE;把源码用svn checkout到本地磁盘。如:F://springsource/v3.2.4
(3).spring源码的编译没有使用ant,而是使用的gradle[3.2.4.RELEASE编译用的是gradle-1.6]。
这里有两种选择:
<a>你可以单独下载gradle-1.6,地址:http://downloads.gradle.org/distributions/gradle-1.6-all.zip,然后配置环境变量,把gradle解压目录/bin配置到path中,然后打开dos命令行,输入gradle -version,看看是否配置成功。
<b>、你也可以不下载,在下面的编译源码过程中,你只需要使用spring自带的gradlew.bat就行,即gradlew -build。注意多了个w、[推荐先下载,反正我下载了的,所以下面我使用的命令都是gradle,而不是网上的gradlew。本来下载spring的jar包就很慢,再下载个gradle(40M左右),就更慢]。
(3).网友说需要改下gardlew.bat文件中第12行的gradle的最大内存等。
修改前:
set GRADLE_OPTS=-XX:MaxPermSize=1024m -Xmx1024m -XX:MaxHeapSize=256m %GRADLE_OPTS%
set DEFAULT_JVM_OPTS=
修改后:
set GRADLE_OPTS=-XX:MaxPermSize=512m -Xmx512m -XX:MaxHeapSize=256m %GRADLE_OPTS%
set DEFAULT_JVM_OPTS=
说明:如果你下载了gradle-1.6的话,应该就不需要改动了吧。[我给改了,顺手的事,就怕编译时候出事]
2、源码编译:
分4步走:
(1)、打开dos命令,输入:
gradle build -x javadoc -x api -x groovydoc -x jdiff -x reference
说明:网友说编译javadoc会报错,没尝试,直接去掉编译(反正不用);去掉api编译,编译这个超级慢,电脑还卡。 其他不懂,反正也给去掉加快编译速度。这个过程是个下载jar包的过程,从spring 仓库中下载,好几百兆,慢慢等吧。快的话2钟头,慢的话一天,不过网线断了不要紧,下次不会重新下载,表怕。
(2)、这些jar包啥都下载好了,dos中输入命令:
gradle install
说明:网友说是把jar包放到gradle目录中,字面意思是安装,有点像linux软件的编译,如:make && make install。【以上两步一般应该不会有问题吧,我搞了两次都没问题】
(3)、以上都搞好了,dos中输入命令:
gradle cleanEclipse :spring-oxm:compileTestJava eclipse -x :eclipse
说明:生成eclipse的项目的配置文件,就是:.classpath,.project、setting目录。要不然eclipse也不认识这是个java项目啊。
注意:这里会有个编译失败,就是它:spring-webmvc-tiles3,不知道啥原因。解决方案,在F://springsource/v3.2.4//spring-webmvc-tiles3目录中手动添加仨文件(.classpath .project setting目录(见附件)]。但是.classpath需要把路径改成你自己的路径,什么路径?任意打开个编译成功的spring的子项目查看下它们的.classpath文件即可知道。
(4)、打开eclipse,导入所有的子项目,直接打开父项目,应该就能显示所有子项目,然后全选,ok。
(5)、dos中输入命令:
gradle :eclipse
导入父项目(也就是v3.2.4这个目录中的src)。【不知道需不需要,我没有执行这个命令,照样导入成功】
最后来张导入成功的图片得瑟下: