`
trydofor
  • 浏览: 145535 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

Build Spring3 惊喜手记

阅读更多
Build Spring3 惊喜手记
作者:臭豆腐[trydofor.com]
日期:2009-12-21
授权:署名-非商业-保持一致 1.0 协议
声明:拷贝、分发、呈现和表演本作品,请保留以上全部信息。

 

文档目录
1. 简单目标
目标是,把spring-framework-3.0.0.RELEASE导入Eclipse,编译无错误。
简单明了,可操作起来,得到很多惊喜。

本地环境:WinXP,ant-1.7.0,jdk1.6.0_16
考虑网速,省去svn检出,下载了spring-framework-3.0.0.RELEASE-with-docs.zip。
解压缩,进入projects/build-spring-framework目录,输入ant,切换窗口,忙别事。

2. 首次惊喜
5分钟吧,切窗口回来,得到惊喜(控制宽度,文本进行了手工折行)。
resolve.compile:
[ivy:cachepath] :: Ivy 2.1.0 - 20090925235825 :: http://ant.apache.org/ivy/ ::
[ivy:cachepath] :: loading settings :: 
file = E:\mess\projects\spring-build\common\ivysettings.xml
   [subant] Leaving directory: E:\mess\projects\org.springframework.instrument

BUILD FAILED
E:\mess\projects\spring-build\multi-bundle\artifact.xml:45: 
The following error occurred while executing this line:
E:\mess\projects\spring-build\multi-bundle\common.xml:71: 
The following error occurred while executing this line:
E:\mess\projects\spring-build\common\common.xml:91: 
impossible to configure ivy:settings with given file: 
E:\mess\projects\spring-build\common\ivysettings.xml : 
java.text.ParseException: failed to load settings from 
file:/E:/mess/projects/spring-build/common/ivysettings.xml: 
impossible to define new type: class not found: 
org.springframework.aws.ivy.S3Resolver in [] nor Ivy classloader

一头雾水,几度搜索,得到线索和结论是,
Err with Pre-existing ant ivy jar (org.springframework.aws.ivy.S3Resolver)
删除 $ANT/lib/ivy-2.1.0.jar。

继续ant,继续切换窗口。

3. 再次惊喜
不知多久,窗口切换了好几回,文字在屏幕上上升,不亦乐乎。
出了个插曲:java.lang.OutOfMemoryError: PermGen space
修改环境变量:
ANT_OPTS=-Xms256m -Xmx768m -XX:MaxNewSize=256m -XX:MaxPermSize=512m
JAVA_OPTS=-Xms512m -Xmx1024m -XX:MaxNewSize=512m -XX:MaxPermSize=1024m

继续 ant,继续切换窗口,但最终得到惊喜。
[ivy:cachepath]                 ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:cachepath]                 ::              FAILED DOWNLOADS            ::
[ivy:cachepath]                 :: ^ see resolution messages for details  ^ ::
[ivy:cachepath]                 ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:cachepath]                 :: org.hibernate#com.springsource.org.hibernate;
3.3.1.GA!com.springsource.org.hibernate.jar
[ivy:cachepath]                 ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:cachepath]
[ivy:cachepath]
[ivy:cachepath] :: USE VERBOSE OR DEBUG MESSAGE LEVEL FOR MORE DETAILS
   [subant] Leaving directory: E:\mess\projects\org.springframework.orm

BUILD FAILED

重复了几次,都没有成功,视乎是网络问题?!

4. 换个角度
可能是点太背了吧,换个角度,转移到日本中转服务器碰碰运气。
CentOS release 4.3,但是java6,ant1.7和svn都没有。

<tty> 安装环境 
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
032
033
034
035
036
037
038
039
040
041
042
043
044
045
046
047
048
#安装 svn
sudo yum -y install subversion // 简易安装
svn --version // 1.0 版本太低
sudo yum -y remove subversion // 卸载
#下载rpm
wget http://the.earth.li/pub/subversion/summersoft.fay.ar.us/pub/subversion/latest/1.6.0/rhel4/i386/subversion-1.6.0-1.i386.rpm
wget http://the.earth.li/pub/subversion/summersoft.fay.ar.us/pub/subversion/latest/1.6.0/rhel4/i386/apr-0.9.12-2.i386.rpm
wget http://the.earth.li/pub/subversion/summersoft.fay.ar.us/pub/subversion/latest/1.6.0/rhel4/i386/apr-util-0.9.12-1.i386.rpm
wget http://the.earth.li/pub/subversion/summersoft.fay.ar.us/pub/subversion/latest/1.6.0/rhel4/i386/neon-0.28.4-1.i386.rpm
wget http://the.earth.li/pub/subversion/summersoft.fay.ar.us/pub/subversion/latest/1.6.0/rhel4/i386/sqlite-3.5.9-4.1.i386.rpm
#强制安装
sudo rpm -ivh apr-0.9.12-2.i386.rpm --force
sudo rpm -ivh apr-util-0.9.12-1.i386.rpm --force
sudo rpm -ivh neon-0.28.4-1.i386.rpm --force
sudo rpm -ivh sqlite-3.5.9-4.1.i386.rpm  --force
sudo rpm -ivh subversion-1.6.0-1.i386.rpm
svn --version
<svn, version 1.6.0 (r36650)

#安装java6和ant1.7后设置环境变量
cat ~/.bash_profile
<ANT_HOME=/usr/local/ant-1.7.0/
<JAVA_HOME=/home/shirj/bin/jdk1.6.0_17/
<PATH=$JAVA_HOME/bin/:$ANT_HOME/bin/:$PATH
<export ANT_OPTS="-Xms512m -Xmx1024m -XX:MaxNewSize=512m -XX:MaxPermSize=1024m"
<export JAVA_HOME
<export ANT_HOME
<export PATH

#按照手册上进行
svn ls https://src.springsource.org/svn/spring-framework
svn ls https://src.springsource.org/svn/spring-framework/tags
svn co https://src.springsource.org/svn/spring-framework/tags/spring-framework-3.0.0.RELEASE/
du -sh spring-framework-3.0.0.RELEASE
cd spring-framework-3.0.0.RELEASE/
cd build-spring-framework
ant

#挨个目录理一下依赖关系
for f in org.springframework.*; do 
if [ -f $f/build.xml ]; then 
cd $f; ant common-common.resolve; cd ..; 
fi; 
done

du -sh ivy-cache
<210M    ivy-cache
zip -9r ivy-cache.zip ivy-cache
网络条件很不错,下载ivy-cache.zip,替换到本地,23个工程好使了21个。
org.springframework.spring-library
spring-framework-reference
org.springframework.aop
org.springframework.asm
org.springframework.aspects
org.springframework.beans
org.springframework.context
org.springframework.context.support
org.springframework.core
org.springframework.expression
org.springframework.instrument
org.springframework.instrument.tomcat
org.springframework.integration-tests
org.springframework.jdbc
org.springframework.jms
org.springframework.orm
org.springframework.oxm
org.springframework.test
org.springframework.transaction
org.springframework.web
org.springframework.web.portlet
org.springframework.web.servlet
org.springframework.web.struts

出错的2个是,
org.springframework.web.servlet工程
org.springframework.web.servlet.view.BaseViewTests
第173行有个字符,需要以UTF8编译。

org.springframework.oxm工程
主要是以下测试代码的问题。
src/test/java/org/springframework/oxm/castor/
src/test/java/org/springframework/oxm/xmlbeans/
src/test/java/org/springframework/oxm/jaxb/
原因是找不到以下8个类:
Flight、FlightDocument、Flights
FlightsDocument、FlightType
ObjectFactory、Order、OrderItem

5. 拒不信邪
对于“再次惊喜”只是的网络故障,始终不能归咎于人品问题。
于是一步一步的,从头再来了一遍,依然没有成功 :(
结论是,在彻彻底底搞清楚之前,千万不要和人品过不去。
1
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics