`
helloman0907
  • 浏览: 28920 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

ant构建spring工程

 
阅读更多
分类: Spring2013-08-24 00:17 889人阅读 评论(3) 收藏 举报

spring3.1.x源码编译并导入eclipse

最近在学习spring的时候想将源码编译下,然后呢就去网上找找方法。参考了以下内容:

http://blog.springsource.com/2009/03/03/building-spring-3/

http://zachary-guo.iteye.com/blog/661839

http://blog.sina.com.cn/s/blog_49fd52cf0100r2rn.html

知道spring编译方法从原来的ant变成了Gradle。但是我下载的版本是3.1.4,所以以下的是spring3.1.4源码编译,虽然很多都和参考资料中相同,但确实是自己验证过的。

1、  通过SVN从spring服务器上下载源码

spring的源码从SVN搬到github上。

地址:https://github.com/SpringSource/spring-framework

2、  通过ant编译源码

1)对于JDK的要求

spring的编译要求是至少java 6。我机子上安装的是jdk1.6.0_13。

设置jdk环境变量:

[plain] view plaincopy
  1. JAVA_HOME = C:\ProgramFiles (x86)\Java\jdk1.6.0_13  
  2. JAVA_OPTS = -Xms512m -Xmx1024m -XX:MaxNewSize=512m -XX:MaxPermSize=1024m  
2)对于ANT的要求

ant版本要求至少要1.7。这里用的是1.8.4

设置ant的环境变量:

[plain] view plaincopy
  1. ANT_HOME = C:\MyApplication\apache-ant-1.8.4  
  2. ANT_OPTS = -Xms256m -Xmx768m -XX:MaxNewSize=256m-XX:MaxPermSize=512m  
3)build源码

通过ant来build源码,通过ivy下载spring所需的第3方jar包。

用命令提示符方式进入到源码的build-spring-framework目录下,然后ant。如下

[plain] view plaincopy
  1. -->cd {SRC_HOME}/build-spring-framework  
  2. -->ant  
  3. ….  
在这边我无力吐槽网速什么的,反正build的时间非常长。而且中间还断断续续的出现连接超时情况。终于,到了test的时候,挂了…..

找了些资料,都说test可以不需要。好吧,为了能build success,咱也就去掉test吧!

方法:在{SRC_HOME}\build-spring-framework\build.xml 中找到

[html] view plaincopy
  1. <targetnametargetname="precommit" depends="clean, clean-integration,test"/>  
 然后去掉test后改成了
[html] view plaincopy
  1. <target name="precommit" depends="clean,clean-integration"/>   
 继续ant,没过多久出现了盼望已久的BUILD SUCCESS。

3、  把编译好的源码导入eclipse

1) 在eclipse中新建一个workspace

参考Spring Team Blog 上的这篇文章,我发现新建一个workspace还是很有必要的。因为spring源码的工程比较多,个人不习惯所有项目混合在一起,既然要看源码,那就干干净净地看呗。

2) 设置IVY_CACHE环境变量

因为spring整个工程都依赖与IVY_CACHE。所以必须设置该环境变量。其实呢,它就是ant在build时创建的ivy-cache,里面是spring工程依赖的jar包。

设置方法如下:

Window -> Preferences -> Java -> Build Path ->Classpath Variables -> New

然后填写:

            NAME:IVY_CACHE

            PATH: ${SRC_HOME}/ivy-cache/repository

3) 设置workspace的jre

这里至少需要jre 6以上。

设置方法如下:

Window -> Preferences -> Java -> Installed JREs 添加相关6以上版本的JDK。

在Window -> Preferences -> Java -> Complier的Compilercompliance level选择相关选择。

4) 将源码导入到eclipse

File -> Import -> Existing Projects into workspace,rootdirectory 选择 ${SRC_HOME}。

5) 补充jar包

在eclipse中导入源码后,你会发现项目上还有红叉叉或红色感叹号。通过查看eclipse的Makers,我们知道了缺少了相关的Jar包。为了消除这些错误,我根据Makers中的提示,到http://ebr.springsource.com/repository/app/bundle中下载缺失的Jar包,并将它们放到对应的位置。

6) 继续消除错误

按理说,在引入jar包后工程应该不会报错了吧,可是呢,我发现几乎所有的项目都是好的,除了org.springframework.oxm项目。查看了下,原来是test的目录中少了Flight等类。想想,还是上网找吧,可是我却没有找到相关的类,真的不知道是spring的疏忽呢还是我的原因。后来,干脆在.classpath中屏蔽了对test目录的引入,一切OK。

4、  总结

虽然编译成功了,但还是发现了很多奇怪的问题。比如,在引入缺失的jar时发现有一些没有被下载到,还有一些版本号不对。没有被下载到,可以被理解,毕竟被限制的网络什么都有可能发生;但是,第三方jar包版本号不对让我很奇怪呀!不知道是不是因为我checkout的版本问题呢?我下载的是branches 中的3.1.x版本,会不会在下载Relsease会好些呢?等下次有时间再试下。

还有,过段时间去学习编译下3.2.x版本的源码,那又是一种新的方式啊!

分享到:
评论

相关推荐

    ant学习测试工程源码

    ant学习测试工程源码,基于spring与hiberante与junit的java工程 用于ant的项目构建

    spring源码

    ant 及 maven2 构建的spring 源码工程

    WebService_CXF实现及ANT

    CXF对Interceptor拦截器的支持 CXF WebService中传递复杂类型对象 CXF整合Spring ANT工具快速构建、部署工程

    Sword:SpringBlade前端UI项目,基于react 、ant design、dva、umi,用于快速构建系统中后台业务。 官网:https

    采用前后端分离的模式,前端开源两个框架: (基于 React、Ant Design)、 (基于 Vue、Element-UI) 后端采用SpringCloud全家桶,并同时对其基础组件做了高度的封装,单独开源出一个框架: 已推送至Maven中央库,直接...

    通向架构师的道路

    (第十九天)使用maven构建Spring工程 (第二十天)万能框架spring(二)maven结合spring与ibatis (第二十一天)万能框架spring(三)之SSH (第二十二天)万能框架spring(四)使用struts2 (第二十三天)maven与ant的...

    spring-boot-angular:基于Spring Boot + angular的前一级分离的后台管理系统

    前端使用angular构建单页应用,分为计算机端和手机端。计算机端UI采用 ,手机端UI采用 。主要功能(开发中...)电脑端登录,退出登录用户管理模块管理角色管理字典管理修改密码,记住密码部门管理权限管理手机端登录...

    springboot参考指南

    初始化新工程 vi. 55.6. 使用内嵌shell vii. 55.7. 为CLI添加扩展 iii. 56. 使用Groovy beans DSL开发应用 iv. 57. 接下来阅读什么 9. VIII. 构建工具插件 i. 58. Spring Boot Maven插件 i. 58.1. 包含该插件 ii. ...

    基于Spring+Hibernate+Eclipse进行敏捷Java开发

    然而,本文还提供了一个基于Spring,Hibernate,Junit和Ant构建的完全可运行的示例时间表应用程序(并有相应的源代码)供您参考。现在,让我们言归正传。二、敏捷宣言在2001年,17位软件专家(包括MartinFowler,...

    iuhyiuhkjh908u0980

    仿照Appfuse 提供一个完全自动化的ant构建脚本.在线SHOP的数据库建模图例已经 在博客中贴出.感兴趣的和我一起搭建,嘻嘻 文档博客地址: http://forum.sinomagazine.com 开发环境: Jcreator-4.5 JDK-1.5 Ant-1.6.1 ...

    数据库系统期末项目基于Spring boot+Vue.js的图书销售系统源码+sql数据库+项目部署说明.zip

    2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。...

    基于SSH2+Maven+EasyUI+MySQL技术实战开发易买网电子商务交易平台

    由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目,而使用 Ant 则需要十几行。事实上,由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,...

    Jetty中文手册

    Maven web应用工程原型 Ant Jetty插件(Plugin) 使用集成开发环境(IDEs) 在Eclipse中使用Jetty 在IntelliJ中使用Jetty 在Eclipse中工作 在Eclipse中开发Jetty Jetty WTP插件(Plugin) JettyOSGi SDK for Eclipse...

    开源软件之道.part2of2

    9.3 apache ant 124 9.4 apache maven 126 9.5 cvs 128 9.6 subversion 130 9.7 git 131 9.8 bugzilla 133 9.9 junit 135 9.10 testng 137 第10章 开源软件之桌面应用 139 10.1 gnome 139 10.2 openoffice.org 142 ...

Global site tag (gtag.js) - Google Analytics