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环境变量:
- JAVA_HOME = C:\ProgramFiles (x86)\Java\jdk1.6.0_13
- JAVA_OPTS = -Xms512m -Xmx1024m -XX:MaxNewSize=512m -XX:MaxPermSize=1024m
ant版本要求至少要1.7。这里用的是1.8.4
设置ant的环境变量:
- ANT_HOME = C:\MyApplication\apache-ant-1.8.4
- ANT_OPTS = -Xms256m -Xmx768m -XX:MaxNewSize=256m-XX:MaxPermSize=512m
通过ant来build源码,通过ivy下载spring所需的第3方jar包。
用命令提示符方式进入到源码的build-spring-framework目录下,然后ant。如下
- -->cd {SRC_HOME}/build-spring-framework
- -->ant
- ….
找了些资料,都说test可以不需要。好吧,为了能build success,咱也就去掉test吧!
方法:在{SRC_HOME}\build-spring-framework\build.xml 中找到
- <targetnametargetname="precommit" depends="clean, clean-integration,test"/>
- <target name="precommit" depends="clean,clean-integration"/>
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工程" 今天,我们将探讨使用Maven构建Spring工程的道路。Maven是一个自动依赖管理工具,可以帮助我们解决jar包依赖问题,并且使我们的项目变得更加简洁和高效。 ...
【标题】"ant学习测试工程源码"是一个Java开发的学习项目,主要目的是教授如何使用Apache Ant作为构建工具来管理基于Spring、Hibernate和JUnit的软件工程。Ant是一个流行的开源构建工具,它允许开发者通过XML配置...
在Eclipse中创建Spring工程通常涉及以下步骤: 1. **设置Gradle**: Gradle是一个强大的构建自动化工具,可以替代传统的Maven或Ant。首先,确保你的开发环境已经安装了Gradle,并配置了环境变量。Gradle允许灵活的...
首先,让我们来看看Ant构建工具在Spring源码工程中的应用。Ant是Apache软件基金会的一个项目,它提供了一种基于XML的方式来描述构建过程,包括编译、打包、测试等任务。在Spring的源码中,Ant脚本定义了编译、测试和...
为了使用Ant构建Spring Boot应用,你需要先在项目根目录下创建一个名为`build.xml`的Ant配置文件。这个文件会定义构建过程的各个阶段,如编译、测试、打包和部署。例如,你可以设置一个目标来编译Java源代码,另一个...
在这个主题中,我们将深入探讨CXF的Interceptor拦截器、处理复杂类型对象的传递以及如何结合Spring进行集成,最后我们将学习如何使用ANT工具快速构建和部署CXF工程。 1. CXF Interceptor拦截器: 拦截器是CXF框架...
这是一个全面的IT项目,旨在构建一个基于现代技术栈的权限管理系统。系统采用了当前最流行的Java后端框架Spring Boot,以及微服务架构的核心组件Spring Cloud,前端则选择了Vue.js作为主要的JavaScript库,并利用...
SpringBlade 是一个由商业级项目升级优化而来的微服务架构,采用Spring Boot 3.2 、Spring Cloud 2023 等核心技术构建,完全遵循阿里巴巴编码规范。提供基于React和Vue的两个前端框架用于快速搭建企业级的SaaS多租户...
- `build.xml`是Ant构建工具的配置文件,用于自动化构建过程。 - `src`目录存放源代码,包括Java类和可能的资源文件。 - `lib`目录存放项目依赖的JAR库。 - `.settings`目录包含Eclipse项目的特定配置信息。 - ...
13. Equinox简介:Equinox是基于Spring框架快速搭建Web应用的工具,它提供了一套预定义的目录结构和Ant构建脚本,极大地方便了基于Struts和Spring的应用开发。 14. 开发步骤概述:教程详细介绍了从下载Struts和...
- **创建项目目录和ant build文件**: 根据项目需求设置项目目录结构,并创建ant build文件以支持项目的构建、部署和测试。 - **创建单元测试**: 为持久层编写单元测试,确保数据访问层的正确性。 - **配置...
2. **项目结构**:理解Maven或Ant构建项目的结构,包括src/main/java(源代码)、src/main/resources(配置文件)和Web-INF目录(web.xml)等。 3. **Struts配置**:创建struts-config.xml文件,定义Action和...
采用前后端分离的模式,前端开源两个框架: (基于 React、Ant Design)、 (基于 Vue、Element-UI) 后端采用SpringCloud全家桶,并同时对其基础组件做了高度的封装,单独开源出一个框架: 已推送至Maven中央库,直接...
Struts 1.2、Hibernate 3.3 和 Spring 3.0 是经典的Java企业级开发框架组合,常被称为...通过这个整合,开发者可以利用Struts的MVC架构、Hibernate的数据持久化能力以及Spring的IoC和AOP特性,构建出高效的企业级应用。
在这个"java技术参考大全"中,我们涵盖了多个关键知识点,包括Ant构建工具的使用、Eclipse集成开发环境的开发与插件扩展、设计模式的理解与应用以及分页技术的全面解析。 首先,让我们关注Ant。Ant是Apache项目的一...
- **Ant 1.7**:用于构建过程自动化。 - **Apache Tomcat 6.0.14**:作为应用服务器部署Web应用。 - **Eclipse 3.3**:集成开发环境,内置Web工具平台(WTP)和Spring IDE插件。 **3. 应用程序构建** - **构建...
在“myweb工程构建”项目中,我们关注的是一个完整的Web应用程序开发流程,这涉及到多个关键组成部分和设计阶段。此项目包含对Web工程的设计、数据库表结构规划、环境配置介绍,以及不同系统的实现,比如奖励系统和...
Spring、Hibernate和Struts是Java开发中非常经典的三大框架,它们分别负责控制层、持久层和视图层的处理,组合使用可以构建出强大的企业级应用。本文将深入探讨SSH框架的整合方法及其常见问题解决方案。 Spring框架...
Gradle是一种强大的构建自动化工具,它可以替代Maven和Ant。Gradle以其灵活性和插件生态系统著称,允许开发者自定义构建流程。本项目采用Gradle进行依赖管理和构建,通过`build.gradle`文件定义项目依赖、构建规则和...
在"ant-game"项目中,可能会使用Spring MVC或类似的框架来实现这一模式。 此外,项目管理方面,使用版本控制系统如Git是非常重要的,它可以追踪代码变更,便于团队协作和回溯错误。项目中的每个文件和目录,如在...