`
trydofor
  • 浏览: 150461 次
  • 性别: 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
分享到:
评论

相关推荐

    Spring 5.0 Cookbook Recipes to build, test, and run Spring applications azw3

    Spring 5.0 Cookbook Recipes to build, test, and run Spring applications efficiently 英文azw3 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除

    Pro Spring 3

    How to build Spring-based web applications using Spring MVC and more How to build Spring-based front ends How the Spring Framework can work with scripting languages like Groovy to provide enhanced ...

    build-spring-framework

    3. **Java配置**:Spring 3.0引入了Java配置,通过Java类来配置bean,进一步减少了XML的使用,使配置更加直观。 4. **Bean的生命周期管理**:Spring提供了多种管理bean生命周期的方式,包括初始化方法、销毁方法、...

    Baeldung Build Your REST API with Spring 5

    Baeldung Build Your REST API with Spring 5 video course

    spring-framework-4.0.1.BUILD-SNAPSHOT-dist

    这个名为"spring-framework-4.0.1.BUILD-SNAPSHOT-dist"的压缩包包含了Spring 4.0.1的完整发行版,为开发者提供了一个方便的下载源,避免了因官方下载地址变动带来的困扰。 Spring框架的核心在于它的依赖注入...

    spring-cloud-build:Spring Cloud模块的常见构建问题,共享插件配置等

    spring-cloud-build:Spring Cloud模块的常见构建问题,共享插件配置等

    spring-build-src-4.0.0.RELEASE.jar

    spring-build-src-4.0.0.RELEASE.jar

    Beginning Spring Boot 2 Applications and Microservices with the Spring Framework

    This book will help you understand what Spring Boot is, how Spring Boot helps you build Spring-based applications quickly and easily, and the inner workings of Spring Boot using easy-to-follow ...

    [web工程]集成spring3

    选择一个并配置pom.xml(Maven)或build.gradle(Gradle),添加Spring 3所需的依赖。例如,在Maven的pom.xml中,你可以添加如下依赖: ```xml &lt;groupId&gt;org.springframework &lt;artifactId&gt;spring-context ...

    spring-5.2.6.BUILD-20200427.114826-98-dist.zip

    spring-5.2.6.BUILD-20200427.114826-98-dist 是Spring Framework的一个发行版本,其中包含了该框架的核心库和相关模块,提供了丰富的功能和工具,用于简化Java应用程序的开发和维护。这个发行版本的版本号是 5.2.6....

    Build Your REST API with Spring 5 - Part 1

    Baeldung Build Your REST API with Spring 5 Course

    RESTful_Spring3MVC

    Spring 3 MVC框架是Java开发者广泛使用的构建Web应用的工具,它为开发RESTful API提供了强大的支持。本教程将深入探讨如何利用Spring 3 MVC实现RESTful服务。 首先,理解REST的基本原则至关重要。RESTful架构有以下...

    ibatis 与spring3整合

    1. **添加依赖**:首先,在项目的pom.xml或build.gradle文件中,需要引入Ibatis 和 Spring 相关的库。 2. **配置SqlSessionFactory**:在Spring的配置文件中,创建一个bean来定义SqlSessionFactory。通常会使用...

    第一次搭建spring3.x需要的jar和搭建源码

    2. **添加依赖**:在项目的`pom.xml`或`build.gradle`文件中添加Spring 3.x的相关依赖。 3. **配置Spring**:创建`beans.xml`或类似配置文件,声明bean及其依赖关系。 4. **编写业务逻辑**:定义Java类作为Spring的...

    Beginning-Spring-Boot-2.pdf

    This book will help you understand what Spring Boot is, how Spring Boot helps you build Spring-based applications quickly and easily, and the inner workings of Spring Boot using easy-to-follow ...

    Spring Microservices_Build Scalable Microservices with Spring,Docker, and Mesos

    本书《Spring Microservices: Build Scalable Microservices with Spring, Docker, and Mesos》深入探讨了如何使用Spring框架、Docker容器技术和Mesos集群管理系统来构建高效、可扩展的微服务架构。通过详细分析与...

    spring framework 3.2.2的源码+build.xml

    通过查看`build.xml`,我们可以了解Spring项目是如何编译、打包、测试和部署的。 总的来说,Spring Framework 3.2.2的源码分析涵盖了依赖注入、面向切面编程、事务管理、Web MVC、数据访问和测试等多个方面,对于想...

    Spring Boot整合Spring Batch,实现批处理

    1. **添加依赖**:在`build.gradle`或`pom.xml`文件中,添加Spring Boot的起步依赖和Spring Batch的相关依赖。 2. **配置数据库**:Spring Batch需要一个数据库来存储批处理作业的元数据,如作业状态、步骤状态等。...

    spring4配置hibernate3

    在pom.xml或build.gradle文件中,你需要找到对应版本的Spring和Hibernate依赖并引入。 2. **配置Hibernate**:创建一个hibernate.cfg.xml文件,定义数据库连接参数,如数据库URL、用户名、密码、驱动类等。同时,还...

Global site tag (gtag.js) - Google Analytics