Spring 源码下载及编译

4 篇文章 0 订阅
3 篇文章 0 订阅

 

svn下载https://github.com/SpringSource/spring-framework/
 
2.环境与工具 
1)jdk不用提,必需品。最新的springFramework已经采用gradle编译,故需要下载gradle包,如果人懒的话不想下载直接跳到第二步
下载地址:
  http://services.gradle.org/distributions/gradle-1.1-all.zip
    解压后将gradle-1.1\bin目录路径添加到环境变量Path中,类似jdk的环境变量设置,cmd下输入gradle -version 查看当前版本是否路径配置成功
2)
修改下gradlew.bat中关于jvm内存设置的参数后,在cmd中进入\spring-framework目录中,运行 gradlew build -x test。跳过所有的测试,
因为测试总会有失败,原因在spring-oxm的测试用例有问题,导致编译失败,如果不信的话大可以试下,结果你懂得。。。

   如果运行gradlew 出现无法初始化jvm的消息,则需要修改下gradlew.bat中关于jvm内存设置的参数,git下来之后原始设置是set GRADLE_OPTS=-XX:MaxPermSize=1024m -Xmx1024m %GRADLE_OPTS%,,恐怕就springFramework开发组那么有钱...配置好高...本人4G内存条都不行囧,

可将MaxPermSize和Xmx稍微写小一点,512M完全没问题的

错误信息如下:

  Error occurred during initialization of VM
  Could not reserve enough space for object heap
  Could not create the Java virtual machine

 

gradlew,这个是存在在spring-framework目录下的一个bat文件,是对Gradle的一个封装,在使用这个命令时会自动去下载gradle,如果已经安装了gradle则在编  译过程中使用的gradlew命令应该都可以替换成gradle。自动下载gradle是根据gradle\wrapper目录中的gradle-wrapper.properties中配置的,distributionUrl=http\://services.gradle.org/distributions/gradle-1.0-bin.zip。

 

 然后就是漫长的等待下载jar包编译项目,如果第一步没有下载gradle包(约50M)等待时间更加漫长,因为每一个spring子项目都需要依赖很多的jar包,而且连接的是spring的http://repo.springsource.org/ 仓库下载,其速度可想而知,编译完成后可以发现,springFramework本来只有50多M的变成了近500M(包括生产的说明文档和class之类),其中的jar包大概有100-200M左右大家可以据此算出时间

第二次编译,第一次编译好的会自动跳过,然后继续没有完成的工作。第二次build了5分钟,结果failed......referenceHtmlMulti编译失败。。。重复编译2次均发现无用,发现当前存放springFramework路径有中文,将项目拷贝到纯英文的路径中

第五次重新编译有效,发现编译

:referenceHtmlMulti
:referenceHtmlSingle
:referencePdf
:reference

时候一直是等待状态,然后每个都过了5分钟左右才成功,差点忍不住kill了重来,看来有点耐心还是好事。。。

这几个其实是springFramework的官方说明文档,编译成功后在 \build\reference可以看到,英文好的还是很具有参考价值

过了这关然后继续是10多分钟的下载编译过程........

直到下午5点20分,折腾了一个小时多,第五次编译总算build successful

 

 

执行

./gradlew install 将jar包安装到gradle库

接下来是将源码导入到IDE中。

由于我是windows用户,所以参考import-into-idea.md的说明

这里,由于我使用的是eclipse,所以执行:

./gradlew cleanIdea eclipse 生成Eclipse导入需要的文件

 

 

在工程的根目录下有文件import-into-eclipse.sh,用editplus之类工具打开,可以看到,

官方说明的导入eclipse分了5步,本人就翻译给4级不过的童鞋算了

1.cmd窗口执行命令 gradlew cleanEclipse :spring-oxm:compileTestJava eclipse -x :eclipse

2.按照eclipse File > Import... > Existing Projects into Workspace导入所有的springFramework项目

3.在cmd窗口执行 gradlew :eclipse

4.按照eclipse File > Import... > Existing Projects into Workspace导入springFramework 父项目

5.如果你想获得git支持(反正我是不用了,呵呵),全选spring*项目,然后右键Team > Share Project... 弹出窗口选择Git然后下一步,

选择"Use or create repository in parent folder of project",点击完成。

 

上面的流程之所以那么长,其实无非就是如果gradlew eclipse那么会直接把父目录和所有子项目都生成.classpath和.project,但是

eclipse导入的时候是不支持继承的,所以你以为把所有的项目导入到eclipse中,其实所有的子项目都在eclipse中找不到对方,那肯定

找不到它们相互引用的类,F4果断无效,所以才有了先生成所有子项目的第一步和第二步导入,然后生成父项目的第三步和第四步导入

 

好了,现在重新DefaultListableBeanFactory 按下F4,总算继承的结构图出来了,代码没有任何问题,能和正常项目一样了

 

参考blog:http://www.cnblogs.com/bluesky4485/archive/2012/08/08/2628488.html

本文出自 “苦逼coder” 博客,请务必保留此出处http://mushiqianmeng.blog.51cto.com/3970029/787211

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值