`
helloman0907
  • 浏览: 29761 次
  • 性别: 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版本的源码,那又是一种新的方式啊!

分享到:
评论

相关推荐

    通向架构师的道路(第十九天)使用maven构建Spring工程.docx

    "通向架构师的道路(第十九天)使用maven构建Spring工程" 今天,我们将探讨使用Maven构建Spring工程的道路。Maven是一个自动依赖管理工具,可以帮助我们解决jar包依赖问题,并且使我们的项目变得更加简洁和高效。 ...

    ant学习测试工程源码

    【标题】"ant学习测试工程源码"是一个Java开发的学习项目,主要目的是教授如何使用Apache Ant作为构建工具来管理基于Spring、Hibernate和JUnit的软件工程。Ant是一个流行的开源构建工具,它允许开发者通过XML配置...

    Spring 5.04 生成eclipse工程

    在Eclipse中创建Spring工程通常涉及以下步骤: 1. **设置Gradle**: Gradle是一个强大的构建自动化工具,可以替代传统的Maven或Ant。首先,确保你的开发环境已经安装了Gradle,并配置了环境变量。Gradle允许灵活的...

    spring源码

    首先,让我们来看看Ant构建工具在Spring源码工程中的应用。Ant是Apache软件基金会的一个项目,它提供了一种基于XML的方式来描述构建过程,包括编译、打包、测试等任务。在Spring的源码中,Ant脚本定义了编译、测试和...

    springboot ant部署

    为了使用Ant构建Spring Boot应用,你需要先在项目根目录下创建一个名为`build.xml`的Ant配置文件。这个文件会定义构建过程的各个阶段,如编译、测试、打包和部署。例如,你可以设置一个目标来编译Java源代码,另一个...

    WebService_CXF实现及ANT

    在这个主题中,我们将深入探讨CXF的Interceptor拦截器、处理复杂类型对象的传递以及如何结合Spring进行集成,最后我们将学习如何使用ANT工具快速构建和部署CXF工程。 1. CXF Interceptor拦截器: 拦截器是CXF框架...

    基于Spring Boot、Spring Cloud、Vue.js 、Element UI实现权限管理系统,JAVA快速开发平台

    这是一个全面的IT项目,旨在构建一个基于现代技术栈的权限管理系统。系统采用了当前最流行的Java后端框架Spring Boot,以及微服务架构的核心组件Spring Cloud,前端则选择了Vue.js作为主要的JavaScript库,并利用...

    商业级项目升级优化而来的微服务架构,采用Spring Boot 3.2 、Spring Cloud 2023 等核心技术构建

    SpringBlade 是一个由商业级项目升级优化而来的微服务架构,采用Spring Boot 3.2 、Spring Cloud 2023 等核心技术构建,完全遵循阿里巴巴编码规范。提供基于React和Vue的两个前端框架用于快速搭建企业级的SaaS多租户...

    spring+struts2+myMatis实现的基于角色访问控制的完整eclipse工程

    - `build.xml`是Ant构建工具的配置文件,用于自动化构建过程。 - `src`目录存放源代码,包括Java类和可能的资源文件。 - `lib`目录存放项目依赖的JAR库。 - `.settings`目录包含Eclipse项目的特定配置信息。 - ...

    spring快速入门教程

    13. Equinox简介:Equinox是基于Spring框架快速搭建Web应用的工具,它提供了一套预定义的目录结构和Ant构建脚本,极大地方便了基于Struts和Spring的应用开发。 14. 开发步骤概述:教程详细介绍了从下载Struts和...

    Spring基础教程

    - **创建项目目录和ant build文件**: 根据项目需求设置项目目录结构,并创建ant build文件以支持项目的构建、部署和测试。 - **创建单元测试**: 为持久层编写单元测试,确保数据访问层的正确性。 - **配置...

    struts+spring+hibernate开发 注册小实例

    2. **项目结构**:理解Maven或Ant构建项目的结构,包括src/main/java(源代码)、src/main/resources(配置文件)和Web-INF目录(web.xml)等。 3. **Struts配置**:创建struts-config.xml文件,定义Action和...

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

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

    Struts 1.2+Hibernate3.3+Spring3.0整合详细步骤+源码

    Struts 1.2、Hibernate 3.3 和 Spring 3.0 是经典的Java企业级开发框架组合,常被称为...通过这个整合,开发者可以利用Struts的MVC架构、Hibernate的数据持久化能力以及Spring的IoC和AOP特性,构建出高效的企业级应用。

    java技术参考大全(ant使用,eclipse开发、分页大全、设计模式等)

    在这个"java技术参考大全"中,我们涵盖了多个关键知识点,包括Ant构建工具的使用、Eclipse集成开发环境的开发与插件扩展、设计模式的理解与应用以及分页技术的全面解析。 首先,让我们关注Ant。Ant是Apache项目的一...

    spring-mvc-step-by-step中文版

    - **Ant 1.7**:用于构建过程自动化。 - **Apache Tomcat 6.0.14**:作为应用服务器部署Web应用。 - **Eclipse 3.3**:集成开发环境,内置Web工具平台(WTP)和Spring IDE插件。 **3. 应用程序构建** - **构建...

    myweb工程构建

    在“myweb工程构建”项目中,我们关注的是一个完整的Web应用程序开发流程,这涉及到多个关键组成部分和设计阶段。此项目包含对Web工程的设计、数据库表结构规划、环境配置介绍,以及不同系统的实现,比如奖励系统和...

    详细的spring + hibernate +struts 整合方法

    Spring、Hibernate和Struts是Java开发中非常经典的三大框架,它们分别负责控制层、持久层和视图层的处理,组合使用可以构建出强大的企业级应用。本文将深入探讨SSH框架的整合方法及其常见问题解决方案。 Spring框架...

    springboot+mybatis-plus+gradle+mysql+swagger基础增删改查、树形查询

    Gradle是一种强大的构建自动化工具,它可以替代Maven和Ant。Gradle以其灵活性和插件生态系统著称,允许开发者自定义构建流程。本项目采用Gradle进行依赖管理和构建,通过`build.gradle`文件定义项目依赖、构建规则和...

    ant-game:软件工程组项目

    在"ant-game"项目中,可能会使用Spring MVC或类似的框架来实现这一模式。 此外,项目管理方面,使用版本控制系统如Git是非常重要的,它可以追踪代码变更,便于团队协作和回溯错误。项目中的每个文件和目录,如在...

Global site tag (gtag.js) - Google Analytics