Building Spring 3(Spring3源码导入Eclipse要点)

注意:本文出自“阿飞”的博客 ,如果要转载本文章,请与作者联系!

今天尝试着把从spring svn下载下来的源码导入到eclipse并进行编译(之前是直接从spring下的zip包,导入到工程,编译不通过)。
今天Google了一下,发现还是有前辈已经做过类似的事情了,在这里也记录如下,本文主要参考一下博文:

步骤类似:
一、前提工作(引自iteye作者的博文)
<wbr>● JDK<wbr></wbr></wbr>
<wbr><wbr><wbr><wbr>使用 Spring 3,至少需要 Java 5;编译 Spring 3,至少需要 Java 6。如果你的机器上装了 N 多个版本的 JDK,请确保环境变量中的那个 JDK 的版本不低于 6.0。<wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr>● Ant<wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr>Ant 1.7 or later。<wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr>● 设置 JAVA_OPTS 和 ANT_OPTS<wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr>设置环境变量,这依赖于你的机器的配置。要提供 JVM 足够大的内存,否则编译过程中会出现内存溢出。参考设置如下:<wbr></wbr></wbr></wbr></wbr></wbr>
Config代码 <wbr></wbr>
JAVA_OPTS=-Xms512m -Xmx1024m -XX:MaxNewSize=512m -XX:MaxPermSize=1024m <wbr></wbr>
ANT_OPTS=-Xms256m -Xmx768m -XX:MaxNewSize=256m -XX:MaxPermSize=512m <wbr></wbr>

<wbr><wbr><wbr><wbr>在以上三点确保的情况下,可以继续下面的操作了,基本上编译不会出现什么问题了。<wbr></wbr></wbr></wbr></wbr></wbr>

二、下载Spring3源代码

三、用ANT编译Spring
使用 ant 来 build,它会通过 ivy 来下载 Spring 3 所依赖的第三方 jar 包。这段时间会持续很久,你可以出去玩一会儿游戏或者睡一会儿,我用的是艾普宽带,尽管是2M,但是进行了无数次之后终于基本(为什么说基本,后面会提到)下载下来了。 <wbr></wbr>
这个过程中我出错了好多次,每次都重新编译过。万恶的是有好多jar没有下载下来。。。

我们期待的结果应该是这样的,按照SpringTeam博文中提到的也是如此的:
Command代码 <wbr></wbr>
---> cd ${SRC_HOME}/build-spring-framework <wbr></wbr>
---> ant <wbr></wbr>
<wbr><wbr></wbr></wbr>
Hava a rest...... <wbr></wbr>
<wbr><wbr></wbr></wbr>
[......] <wbr></wbr>
BUILD SUCCESSFUL<wbr></wbr>

但是我的每次都是BUILD FAILED...
于是乎重新试了N多次,最后终于到了junit test的时候有一项failed了,如下:
[junit] Testcase: getSystemEnvironment_withAndWithoutSecurityMa<wbr>nager(org.spr</wbr>
ingframework.core.env.EnvironmentTests): FAILED

按照Spring Team博客作者对@reddog的回复,我尝试了一下,结果SUCCESS!
@reddog: if you wish to run all the tests, but simply ignore this one, add JUnit's @Ignore annotation to the test method that's failing. If you simply wish to build the Spring JARs locally and skip running all tests, simply run `ant jar`. It will compile and package the jars, but will not run any tests. Keep in mind that if you're trying to populate a local Maven repository, you can run `ant install-maven`. This will compile the code, package the JARs and copy them into the correct locations within your local ~/.m2/repository cache.

我到这步编译完后不进行junit test,执行ant jar,结果成功!呵呵呵

接下来要做的事情就是如何将编译好的Spring 源码导入到Eclipse中:
1. 创建IVY_CACHE环境变量(之前不知道这个变量是在哪里设置的,以为会默认,因此工程中出现了无数红xx)
<wbr><wbr>Spring 3 的整个工程依赖于 IVY_CACHE 这个环境变量,它其实就是 ant build 时创建的 ivy-cache 目录,这里面都是 Spring 3 所依赖的第三方 jar 包。<wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr>在eclipse中 Window -&gt; Preferences -&gt; Java -&gt; Build Path -&gt; Classpath Variables -&gt; New:<wbr></wbr></wbr></wbr></wbr></wbr>
Path代码 <wbr></wbr>
Name=IVY_CACHE <wbr></wbr>
Path=${SRC_HOME}/ivy-cache/repository

2. 确保eclipse中installed jre是6.0+:
Window -> Preferences -> Java -> Installed JREs,确保选中的是 Java 6。

3. 将Spring 所有工程导入到Eclipse:
File -> Import -> Existing Projects into workspace,root directory 选择 ${Spring_SRC_HOME}。<wbr></wbr>

到这里,你基本上能看到spring的所有工程到导入到了eclipse中,但是有可能仍然会有!号的错误信息,这个有可能ivy中部分包没下载到,我的情况也是如此的,最后我是手动将所有缺失的jar一个个下载拷贝到另ivy中。

缺失的jar包可以到spring直接查找并下载:

如果有研究spring源代码在这个过程中遇到问题的可以留言我们一起讨论、学习:)



评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值