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

spring源码导入idea并编译 阅读详情

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
2)对于ANT的要求

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
3)build源码

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

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

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

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

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

<targetname="precommit" depends="clean, clean-integration,test"/>
 然后去掉test后改成了

<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风格 #Spring中Ant风格的路径匹配方式 @FDDLC 一、何为Ant风格 Ant风格是一种路径匹配方式。示例:/img/*.jpg,/cn/fddlc/** 为什么叫Ant风格? 从名字可以看出,跟Ant有关。蚂蚁?No!Ant是Apache下的一个构建(编译、测试、部署等)工具。 即Ant风格源于Ant这个构建工具。 二、Ant风格教程 1、通配符: ?匹配任意单个字符 *匹配0到多个字符 **匹配0到多级目录 2、示例: /img/?.jpg能匹配/img/a.jpg,不能匹配/img/dog.jpg、/img/fruit.. 阅读详情

相关推荐

超菜鸟级ctf

超菜鸟级ctf 前言 大佬们为我这些菜鸟准备的ctf平台来练习(紧抱大佬的腿),特意为没打过ctf的我们准备了一些超级基础的题来开启我们的第一次ctf之旅… 一共只有6道题吧,一个半小时左右,真的是超简单,结果做的真的是… 下面凭我个人的感觉由简到难的回忆一遍吧 题目 抽屉没锁 这是一道文件上传题,也是我点开6道题后最先入手的 进到页面一看就很直接的会想文件上传漏洞,真的是第一次玩ctf,拿...

kid的博客 5325

17_ant_完整的用户管理小项目_搭建了spring_mvc的框架

17_ant_完整的用户管理小项目_搭建了spring_mvc的框架17_ant_完整的用户管理小项目_搭建了spring_mvc的框架

应届Java小菜鸟初到公司之环境部署

应届Java小菜鸟初到公司之环境部署

AngerlyLion的博客 1025

springboot ant部署

NULL 博文链接:https://hoochiang.iteye.com/blog/2303912

[零基础学C#] C#从小白到菜鸟 第1期 - 前言、简介、编辑器安装

★前言大家好!你现在阅读的是C#零基础入门《C#从小白到菜鸟》,我是你们最亲爱的iFasWind同学,接下来就由我来和大家一起学习C#。如果你是完全没学过编程的小小白,没关系,这个系列的教程就是为你准备的;如果你对C#编程有一定的了解,那不妨和我一起巩固下基础;如果你是大神,那请你360度托马斯回旋点赞完再走(&gt;.&lt;)。在我们开始学习之前...

菜鸟小栈 2180

10款C++在线编译器实测推荐:从语法验证到调试汇编全覆盖

编程学习中,环境配置常常成为第一道坎,尤其是C++这种依赖编译器和构建工具链的语言。理解编译器的工作原理、不同编译标准(如C++11/17/20)以及调试工具的价值,能帮助你更快上手。在线编译器通过浏览器直接完成代码的编译、运行甚至调试,省去本地安装Visual Studio或配置MinGW的繁琐过程,为临时验证、算法刷题和教学演示提供了轻量级解决方案。本文按场景实测了10款主流C++在线编译器,涵盖支持GCC/Clang多版本切换的Wandbox、具备在线GDB调试能力的OnlineGDB、以及可深入观察

weixin_31286719的博客 358

Spring中的Ant路径匹配工具组件AntPathMatcher

Spring中的绝大多数的路径匹配规则是依照Ant的标准来的 实际上不只是SpringMVC,整个Spring框架的路径解析都是按照Ant的风格来的,在Spring中的具体实现,详情参见 org.springframework.util.AntPathMatcher,具体规则如下 /** * {@link PathMatcher} implementation for Ant-style path patterns. * * <p>Part of this mapping code

q1472750149的博客 2250

【驯服AI】如何用 RIPER-5 工作流让AI 更听你话

​ riper-5 是cursor论坛中一位网友提出以工作流的方式让AI来辅助解决较复杂问题的理念,如果你不了解工作流,换个说法就是rule,通过强制限定的rule,将AI 解决问题的过程拆分为五个阶段 ,目的是让AI 在各个阶段充分利用算力把这个阶段应该思考的内容一次性想清楚,而不急于直接上手代码-【这是现在AI 工具急于求成的通病】。每个阶段都需要AI给出简单的报告,让我能一目了然的掌控住AI 到底干了些什么。模式目的关键操作禁止行为R:(RESEARCH):探索阶段信息收集和理解。

m0_37640870的博客 1503

基于spring.handlers和spring.schemas实现Spring的Schema自定义扩展

概要 本文将以nacos-spring-project的扩展案例的经典使用方法来讲解对Schema支持,其中会结合部分讲解进行。通过本文可以掌握Spring扩展Schema的支持,该方法也是将一些中间件包装到Spring框架中的常用方法。 需要扩展Schema的场景分析 通常对系统提供可配置化支持,简单的可以直接基于Spring的标准Bean来配置。 但当需要配置较为复杂或者需要更多丰富控制的时候,就会比较困难,此时可以用自定义的方式去解析自主定义的xml文件,然后转化为配置对象,这种方式可以解决所

FeelTouch Labs 1011

boost入门(一):boost简介

前言 发现自己做为C++,竟然没有用过boost。特地学习下如何使用boost,我作为初学者,会从入门指南开始,一点点深入了解boost。 本文采用的版本是boost 1.75.0 boost 介绍 boost 是一个跨平台的C++工具库,是的,没错!相当于一个大的工具集合。当然boost没有那么全面,比如界面库就没有。 首先到官网下载boost,我选择的是boost 1.75.0 Windows版本。可以阅读发行版本的文档,来查看boost包含有哪些工具,我就不一一列出来,可以去boost 1.75.0

q893332169的博客 2万+

CTF - 攻防世界 - mobile新手 - app1

今天去CTF瞄了一眼发现有mobile的题,就拿来学习下,CTF的入门题目对新手很有帮助的~ 下载的附件是一个apk文件,开启模拟器,把apk拖进去安装。咱有两个模拟器,配置不一样,第一个安装的时候报错了,然后尝试第二个,安装成功(虽然菜鸟本人也不知道为啥,反正多尝试总没错~) 看上去是要输入正确的key才能通关,把之前学过的手段全都安排一遍哈哈哈(其实一共也没会几种 >_<!!!) 先解压看下,貌似没有加密或者混淆之类的,直接反编译 反编译拿到源码,首先得找到vers.

菜鸟的测试世界 2704

Ant安装执行build.xml下载spring3所需依赖包

在学习spring3搭建环境过程中,需要获取spring所依赖的包,说在连网的情况下,通过ant运行\projects\build-spring-framework\build.xml,会自动下载所需要的jar包,下载后的包位于\projects\ivy-cache\repository下面。         百度搜索ant,找到官网http://ant.apache.org/,下载了最新版本的

北风 1835

用C语言打印一个等腰三角形

#include <stdio.h> int main() { int m,n,i,j,k; printf("请输入m:"); scanf("%d",&m); n=m; for(i=1;i<=m;i++)//控制等腰三角形的高度 { for(j=n-1;j>0;j--) { printf(" ");//输出每一行最前面的空格 } n--; for(k=1;k<=i;k++)//打印每一行的空格后的东西 { ...

studying_pxy的博客 2万+

python编程-第五节-if语句-005

谁说编程不能讲究仪式感? 就像参加正式场合要穿西装一样,你的if语句也需要得体打扮! PEP 8这位"代码时尚顾问"给出了重要建议: 比较运算符需要"呼吸空间"。  

欢迎来到测试猿的吐槽大会!这里没有鸡汤,只有段子。功能测试:在需求文档里找漏洞,在界面上玩大家来找茬。自动化测试:让代码替我加班,而我负责喝咖啡摸鱼。性能测试:给服务器施压,看它到底能扛几拳。全流程质量守护:从需求评审到上线,一路带刀护送。 1241

Openwrt学习总结(一)之开发环境的搭建

一、Openwrt开发环境的选择Openwrt作为路由器上一个开源的Linux开发系统,开发环境主要还是Linux。对于Linux开发的菜鸟来说,搭建好的一个开发环境是及其重要的。主要是网上主要是有 Win7+虚拟机Linux直接在Linux下开发 我的选择主要是Win7和虚拟机Linux,因为习惯了Win7还有就是很多软件是在Linux下没有的(比如没有稳定的QQ)。 二、虚拟机的

风过草偃学习记录的专栏 508

判断浮点数是否等于0

从如何判断浮点数是否等于0说起——浮点数的机器级表示 题目中针对的0,对于浮点类型,具体指的是0.0,自然对于指针类型就是NULL,对于整型就是0,一些常见笔试面试题中常出现,不要较真,十分欢迎提出改进意见。 本文很大程度上收到林锐博士一些文章的启发,lz也是在大学期间读过,感觉收益良多,但是当时林锐也是说了结论,lz也只是知其然,而不知其所以然,为什么要那样写?为什么要这样用

Gleah的博客 6721

【微信小程序】(一)创建项目与前端编写

首先,编写微信小程序必须知道三个网站: 微信公众平台 小程序代码管理 微信开放文档 1.创建项目 首先进入微信公众平台,扫码登录,选择小程序开发,我们可以看到这样的界面: ...

qq_41843697的博客 4587

零基础学习SystemVerilog:超详细版入门指南

专为systemverilog菜鸟设计的教程,从基础语法到实战演练逐步讲解,帮助初学者快速上手硬件描述语言,轻松迈入数字系统设计大门。

weixin_42509720的博客 1525
上一篇: MVC模式基本理解
下一篇: ExtJS2.2树的级联选择
HingKwan
博客等级 码龄17年 51粉丝 86原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值