spring源码下载及转入ECLIPSE
转自:https://www.cnblogs.com/scevecn/p/6043284.html
本例spring源码版本是4.3.0的,
- 所以jdk需要准备1.8的(不同版本源码要求的jdk不一样)
- 1.8版本myeclipse10无编译环境,只有运行环境,出现点问题,下载最新版本的Eclipse Jee Neon
github
Spring 的源码已经从 svn 迁移到 GitHub。而且也改为基于 Gradle 的构建来构建项目。它取代了之前的 Ant+Ivy 系统,所以要构建 Spring 源码环境首先要安装 GitHub 以及 Gradle。
下载
Windows 系统对应的 GitHub 版本下载地址为: https://desktop.github.com/ 。如图所示:

安装
- 点击安装包

- 开始安装

- 下载安装文件

- 安装完成之后自动打开登陆界面(不需要,用不着)

- 登陆github(不需要,用不着)

结果
下载、安装,开始菜单上 GitHub 菜单,如图:

- 不依赖其他模块:本附件配置将以第三方插件包的形式提供使用,它应该作为依赖关系的底层被依赖,而不能依赖其他业务模块。(DNA核心除外)
- 扩展灵活:提供统一框架,满足各个项目的个性化附件配置需求。
Gradle
Gradle 是一个基于 Groovy 的构建工具,它使用 Groovy 来编写构建脚本,支持依赖管理和多项目创建,类似 Maven,但比其更加简单轻便。
Gradle 为 Ivy 提供了一个 layer,提供了 build-by-convention 集成,而且他还让你获得许多类似 Maven 的功能。
下载
Gradle 的下载地址是:http://www.gradle.org/downloads 作为初学者建议选择包含文档和样例源码的压缩文件较好,将下载文件解压。如果你下载的是gradle-xx-all.zip的完整包,它会有以下内容:二进制文件用户手册(包括PDF和HTML两种版本),DSL参考指南,API手册(包括Javadoc和Groovydoc),样例源代码,仅供参考使用。

配置环境变量
在windows中的Gradle配置:在环境变量对话框中,定义环境变量GRADLE_HOME到你的gradle根目录当中,然后修改环境变量 Path,即追加%GRADLE_HOME%\BIN;(linux或mac的是$GRADLE_HOME/bin)。

检查
配置完成之后,当完成系统变量的配置后打开命令窗口输入命令 " gradle -version ",如果出现Gradle对应的版本信息,表示安装成功。

Spring源码下载
直接网站下(这个可以,选择需要的版本源码,三选一)
下载地址:https://github.com/SpringSource/spring-framework/tags/
选择需要的版本下载zip即可。
svn (地址都有了用啥下都一样了,三选一)
下载地址:https://github.com/SpringSource/spring-framework/tags/
Window-->Open Perspective -->SVN资源库研究把源码用svn checkout到本地磁盘
使用github下载Spring(不推荐使用这种方式,只能是最新的源码,请跳过)
单击快捷菜单中的 Git Shell 选项,打开 GitHub 后,可以通过 cd 命令将当前操作目录转换到我们想要存储源码的目录。
例如:e:\test ,执行命令 cd e:\test
输入以下命令:
git clone git://github.com/SpringSource/Spring-framework.git
其中,git://github.com/SpringSource/Spring-framework.git 为Spring的源码地址。执行命令后便进入源码下载状态。

经过一段时间的等待后源码下载结束,窗口状态如下图

而这时,对应的文件夹下已经存在相应的源码信息,如下图所示。

Spring源码构建
使用gradle构建项目
当前的源码并不可以直接导入 Eclipse 中,我们还需要将源码转换为 Eclipse 可以读取的形式。
单个工程构建(二选一,不推荐)
可以只对感兴趣的工程进行 Eclipse 工程转换,比如我们想要查看 Spring 事务部分的源码,打开命令窗口,将当前目录切换至源码所在目录,这里是 Spring-tx文件夹下,执行命令 gradle cleanidea eclipse 。当窗口出现如下状态说明已经开始执行转换过程,如下图:

经过一段时间后转换成功,如下图所示、

这时,我们再查看对应的文件夹会发现,已经出现了作为 Eclipse 工程所必须的 .project 和 .classpath 文件了,如下图所示

没有编译过的
编译之后的
打开 Eclipse,将工程导入,导入后目录结构如下图

你会发现工程名称前面有一个感叹号,这说明项目存在错误。查看依赖及工程,会看到当前工程所依赖的包出现问题。如下图

但是,查看依赖的 Projects 时发现

依赖的项目出现问题,只需要把需要的几个项目编译之后导入就可以了。
依赖的包出现问题,后边解决。
批量构建(二选一,推荐虽然时间长,但是减少导入后整理jar包的工作)
可以将所有工程一次性的编译、导入。但是不推荐这样的方式,这样会耗费大量的时间,而且当存在编译错误的时候,你不得不重新编译。
gradlew.bat(预构建)
pring-framework目录里面有一个gradlew.bat批处理文件,双击出现控制台界面,连续按两次回车键,下载各种依赖jar包和dom文件,公司外网不好,用了几个小时,没下下来,这就尴尬了。
import-into-eclipse.bat (构建)
spring-framework目录里面有一个import-into-eclipse.bat批处理文件,双击出现控制台界面,连续按两次回车键,就可以开始自动构建了,构建过程需要花很长时间(如有没有提前执行gradlew.bat,这里就会下载各种依赖jar包和dom文件)。
中间还经常出现停止不动的情况,按Ctrl+c终止运行,再一次双击import-into-eclipse.bat文件重复上述过程即可(会接着上次构建的位置继续构建),到构建完成后控制台会自动关闭。
最后删除spring-framework下的setting文件夹和project文件,否则eclipse只能导入整体,不能导入每个工程。
Spring构建后的问题
依赖的包出现问题(发现批量构建成功后不会报这个错误)
暂时遇到:缺失spring-cglib-repack-3.2.4.jar和spring-objenesis-repack-2.4.jar。
虽然可能从网上下载到这个2个包,但是,由于版本问题,还是不能使用。最好的解决办法就是从源码里边将需要的包提取出来
下载对应版本的dist.zip文件
下载对应版本的dist.zip文件来提取需要的jar包(distribution,发布用的版本)访问地址:http://repo.springsource.org/libs-release-local/org/springframework/spring/ (可能会很慢)

提取
解压spring-framework-4.3.0.RELEASE-dist\spring-framework-4.3.0.RELEASE\libs目录下的spring-core-4.3.0.RELEASE.jar文件

在cmd命令窗口下切换到上一步的目录下,

使用jar命令生成需要的jar文件 :
spring-cglib-repack-3.2.4.jar
命令:jar cvf spring-cglib-repack-3.2.4.jar org\springframework\cglib
spring-objenesis-repack-2.4.jar
命令:jar cvf spring-objenesis-repack-2.4.jar org\springframework\cglib
检查是否生成
查看当前目录E:\spring\code\spring-framework-4.3.0.RELEASE-dist\spring-framework-4.3.0.RELEASE\libs\spring-core-4.3.0.RELEASE下确实生成了需要的jar文件
验证一下生成的jar包的目录结构是否正确(因为第一次操作的时候不注意,导致虽然包打好了,但是目录结构不对,最终不能使用)



GroovyBeanDefinitionReader.java会报错
如果eclipse没有安装groovy插件,则spring-beans-groovy包中的GroovyBeanDefinitionReader.java会报错,因为eclipse不能编译groovy脚本。
报错信息:
Description Resource Path Location Type
GroovyDynamicElementReader cannot be resolved to a type
GroovyBeanDefinitionReader.java /spring-beans-groovy/src/main/java/org/springframework/beans/factory/groovy line 391 Java Problem
Groovy 下载地址:http://groovy-lang.org/download.html
安装groovy插件(在线)
step 1:检查自己的eclipse版本:在help->About Eclipse中查看:

step 2:进入 https://github.com/groovy/groovy-eclipse/wiki查找和自己eclipse对应版本的groovy:

step 3:拷贝下载地址http://dist.springsource.org/snapshot/GRECLIPSE/e4.6/
step 4:打开eclipse,在eclipse中,选择help -> Install New Software…:

step 5:选择add,对话框中name随便写,地址将上面拷贝的地址粘贴进去:

step 6:等待一小会,会出现如下选项,全选后下一步:


重启
重启eclipse,然后clean一下项目就搞定了。
Spring构建后的问题
在Eclipse菜单File->import选择General下面的Exsiting projects into workspace


参考借鉴
Spring环境搭建--Spring源码深度解析:
http://www.cnblogs.com/chuzh/p/4996976.html
Spring官网下载dist.zip的几种方法:
http://www.cnblogs.com/yjmyzz/p/3847364.html
spring源码构建时缺失spring-cglib-repack-3.2.4.jar和spring-objenesis-repack-2.4.jar:
http://www.itdadao.com/articles/c15a711547p0.html
spring源码gradle获得eclipse工程时,spring-beans-groovy项目GroovyDynamicElementReader报错解决
http://blog.csdn.net/smithdoudou88/article/details/46356305
spring源码下载及转入ECLIPSE的更多相关文章
- spring 源码如何导入到eclipse
spring 源码如何导入到eclipse spring源码解析——spring源码导入eclipse spring framework源码下载并导入eclipse
- Spring源码下载
Spring已经将源码从SVN迁移到了Github,而且也改为基于Gradle的构建来构建项目,它取代了之前的ANT+Ivy系统,所以要构建Spring源码要先安装Github和Gradle. 首先假 ...
- spring源码系列(一)sring源码编译 spring源码下载 spring源码阅读
想对spring框架进行深入的学习一下,看看源代码,提升和沉淀下自己,工欲善其事必先利其器,还是先搭建环境吧. 环境搭建 sping源码之前是svn管理,现在已经迁移到了github中了,新版本基于g ...
- 将Spring源码转换为工程 + 导入Eclipse时缺失jar包
将源码转换为工程: 比如查看Spring事务部分的源码. 打开cmd窗口,切换到Spring-tx文件夹下,执行命令 “gradle cleanidea eclipse” . 缺失jar包: 第一步: ...
- spring 源码下载
github spring 源码 导入Spring源码方法 java世界中的三大构建工具:ant,maven,gradle gradle 简介
- Spring源码下载地址
今天想下载一下Spring的源代码,登录到Spring官网,傻眼了,根本找不到下载的地方!费了九牛二虎之力在网上找到了一个下载地址,记下来,免得下次再次傻找. http://s3.amazonaws. ...
- [转载]Spring源码下载地址
转载自:http://blog.csdn.net/liuzheng2684/article/details/6534722,谢谢! 今天想下载一下spring的源代码,登录到Spring官网,傻眼了, ...
- Struts/Hibernate/Spring源码下载
Struts: https://olex.openlogic.com/packages/struts Hibernate: https://olex.openlogic.com/packages/hi ...
- spring 源码下载地址
1, github: https://github.com/spring-projects/spring-framework SVN: https://github.com/spring-projec ...
随机推荐
- 02java基础——类和方法
1.类的定义 /* 定义类: 使用类的形式,对现实中的事物进行描述 事物: 属性,方法 属性: 变量 方法: 这个事物具备的功能 格式: public class 类名{ 属性定义 修饰符 数据类型 ...
- AtCoder Regular Contest 066 E - Addition and Subtraction Hard (结论+DP)
Time limit : 2sec / Memory limit : 256MB Score : 900 points Problem Statement Joisino has a formula ...
- jvm 堆
1.堆内存线程共享,在虚拟机启动时创建. 2.几乎所有的对象实例都在堆上分配:栈中存放基本数据类型和堆中对象的引用. GC回收 程序计数器.虚拟机栈.本地方法栈随线程而生,随线程而灭.栈中的栈帧随着方 ...
- puppet使用rsync模块
puppet使用rsync模块同步目录和文件 环境说明: OS : CentOS5.4 i686puppet版本: ...
- linux运维、架构之路-Kubernetes本地镜像仓库+dashboard部署
一.部署docker registry 生产环境中我们一般通过搭建本地的私有镜像仓库(docker registry)来拉取镜像. 1.拉取registry镜像 [root@k8 ...
- 面试题常考&必考之--http访问一个页面的全流程(Tcp/IP协议)
分析:-http访问一个页面的全流程,也就好比我们在地址栏输入地址,然后点击回车进行访问 该面试题的主要考点是:计算机网络的TCP/IP协议栈 描述图片:首先应用层提交http请求,传到传输层后由,T ...
- ARC模式下delloc()注意事项
1.ARC模式下delloc()调用触发时机是对象被销毁,如self.属性=nil 2.ARC模式下delloc()里面不需要手动调用[super dealloc]; 因为系统已经自动调用,多此一举的 ...
- 不同地区Android开发者使用哪些设备测试APP?
我们的团队密切关注着移动世界的趋势,以便可以提供所有有关变化的最紧密和最重要的信息.春天恰好是对app进行新一轮测试并检查其与不同Android设备兼容性如何的最佳时机.下面让我们一起来看看全世界范围 ...
- luogu P1147 连续自然数和 x
P1147 连续自然数和 题目描述 对一个给定的自然数M,求出所有的连续的自然数段,这些连续的自然数段中的全部数之和为M. 例子:1998+1999+2000+2001+2002 = 10000,所以 ...
- c++复习——临考前的女娲补天 >=.<
一些零零散散的知识点... 1.抽象类只能作为其他类的基类,不能建立对象,但抽象类的派生类如果给出纯虚函数的函数体,这个派生类仍然是一个抽象类.//这个好理解 懂了 2.抽象类不能作为参数类型,函数的 ...