本人最近想要研究spring的源代码,但当要导入spring sub project到Eclipse里面去的时候遇到了不少麻烦(其实都怪自己想当然)。

找到spring-framework的gitHub主页(http://springsource.org/spring-framework),也没看README部分的说明就直接copy了工程的源码下载地址https://github.com/spring-projects/spring-framework.git到SVN去下载,然后想直接通过check out把tags下面的v3.2.4.RELEASE目录下面的spring-core sub project 导入成Eclipse里面的工程。check out完成后发现里面的目录结构采用的是maven风格,于是直接转换成maven工程,转换成功后发现有许多错误,依赖jar包没有导入进来,刚开始本人还想直接通过maven一个个来导入,但是后来发现这个过程无法进行,依赖的jar太多根本进行不下去,一个子项目还好,spring源码里面有十几个子项目。忙活了半天无赖只好放弃,继续寻找其他方案。结果在spring-framework的gitHub主页上看到构建源码的文档,发现spring framework采用Gradle自动构建,经过自己的摸索终于一次性完成了所有子项目的导入。

具体步骤如下:

1.从svn里面选择一个要研读的版本(我这里是选的tags/v3.2.4.RELEASE)导出到一个目录下面(如:D:/opensource/spring-framework)。

2.安装Gradle软件,安装过程很简单,具体看官方document http://www.gradle.org/docs/current/userguide/userguide_single.html#installation有详细的步骤。

3.进入D:/opensource/spring-framework目录里面有一个import-into-eclipse.bat批处理文件,顾名思义,双击出现控制台界面,连续按两次回车键,就可以开始自动构建了,构建过程需要花很长时间(下载各种依赖jar包和dom文件),也许是我家里网速不好吧,用了几个小时。中间还经常出现停止不动的情况,按Ctrl+c终止运行,再一次双击import-into-eclipse.bat文件重复上述过程即可(会接着上次构建的位置继续构建),到构建完成后控制台会自动关闭。

4.在Eclipse里面菜单File--->import选择General下面的Exsiting projects into workspace,这样就导入完成了,不知怎么的会有几个源文件文件出现错误,比如@Override了一个不存在的方法(处理方法是去掉@Override注解即可),注意有些sub project要jre1.7以上(里面引用了1.7里面的新的api)。

Spring源码分析之——导入spring-framework源代码到Eclipse的更多相关文章

  1. spring源码分析系列 (3) spring拓展接口InstantiationAwareBeanPostProcessor

    更多文章点击--spring源码分析系列 主要分析内容: 一.InstantiationAwareBeanPostProcessor简述与demo示例 二.InstantiationAwareBean ...

  2. spring源码分析系列 (5) spring BeanFactoryPostProcessor拓展类PropertyPlaceholderConfigurer、PropertySourcesPlaceholderConfigurer解析

    更多文章点击--spring源码分析系列 主要分析内容: 1.拓展类简述: 拓展类使用demo和自定义替换符号 2.继承图UML解析和源码分析 (源码基于spring 5.1.3.RELEASE分析) ...

  3. spring源码分析系列 (1) spring拓展接口BeanFactoryPostProcessor、BeanDefinitionRegistryPostProcessor

    更多文章点击--spring源码分析系列 主要分析内容: 一.BeanFactoryPostProcessor.BeanDefinitionRegistryPostProcessor简述与demo示例 ...

  4. spring源码分析系列 (2) spring拓展接口BeanPostProcessor

    Spring更多分析--spring源码分析系列 主要分析内容: 一.BeanPostProcessor简述与demo示例 二.BeanPostProcessor源码分析:注册时机和触发点 (源码基于 ...

  5. spring源码分析系列

    spring源码分析系列 (1) spring拓展接口BeanFactoryPostProcessor.BeanDefinitionRegistryPostProcessor spring源码分析系列 ...

  6. spring源码分析(二)Aop

    创建日期:2016.08.19 修改日期:2016.08.20-2016.08.21 交流QQ:992591601 参考资料:<spring源码深度解析>.<spring技术内幕&g ...

  7. spring源码分析

    编译问题 spring-4.0.5.release编译是用jdk8编译的,为啥可以运行在jdk7的环境? 源码分析 spring源码分析,由一个点各个击破,比如依赖注入,autowired. spri ...

  8. 【spring源码分析】IOC容器初始化(一)

    前言:spring主要就是对bean进行管理,因此IOC容器的初始化过程非常重要,搞清楚其原理不管在实际生产或面试过程中都十分的有用.在[spring源码分析]准备工作中已经搭建好spring的环境, ...

  9. 【spring源码分析】IOC容器初始化——查漏补缺(五)

    前言:我们知道在Spring中经常使用配置文件的形式对进行属性的赋值,那配置文件的值是怎么赋值到属性上的呢,本文将对其进行分析. 首先了解一个类:PropertySourcesPlaceholderC ...

随机推荐

  1. Symmetric Tree,对称树

    问题描述: Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center). ...

  2. 使用H5 canvas画一个坦克

      具体步骤如下:   1. 首先做出绘图区,作为坦克的战场   <canvas id="floor" width="800px" height=&quo ...

  3. iTerm2的设置和Zsh.

    很好的说明文: https://xiaozhou.net/learn-the-command-line-iterm-and-zsh-2017-06-23.html iTerm2是Mac os用户使用的 ...

  4. 2018HN多校

    http://acm.hi-54.com/contest_problemset.php?cid=1455 A : 摩斯密码 概览问题列表状态排名 Progress Bar 时间限制:1 Sec 内存限 ...

  5. UVA-11248 Frequency Hopping (最大流+最小割)

    题目大意:给一张网络,问是否存在一条恰为C的流.若不存在,那是否存在一条弧,使得改动这条弧的容量后能恰有为C的流? 题目分析:先找出最大流,如果最大流不比C小,那么一定存在一条恰为C的流.否则,找出最 ...

  6. 基于Oracle的SQL优化(崔华著)-学习笔记

    201704171025 01. 列rows记录的就是执行计划中每一个执行步骤所对应的Cardinality的值 列Cost(%CPU)记录的就是执行计划中的每一个执行步骤对应的成本 02. Comp ...

  7. 一. Spring框架防XXS跨站攻击

    使用 Spring 框架进行 Java Web 开发,可以在 web.xml 文件中设置 HTML encode,在 JSP 文件页面元素 form 中确定实施. web.xml 加上: <co ...

  8. BZOJ3427 Poi2013 Bytecomputer

    可以YY一下嘛= = 最后一定是-1, -1, ..., -1, 0, 0, ... 0, 1, 1, ..., 1的一个数列 于是f[i][j]表示到了第i个数,新数列的第j项为-1 or 0 or ...

  9. Web开发框架之权限管理系统

    Web开发框架之权限管理系统 记得我在很早之前,开始介绍我的Winform开发框架和我的WCF开发框架之初,我曾经给出下面的视图,介绍我整理的一个框架体系,其中包含有WInform开发框架以及我的We ...

  10. halcon之屌炸天的自标定(2)

    自 halcon之屌炸天的自标定(1)发出以后,有朋友看了文章也应用到了自己的测量项目中,效果奇好,成功搞定了20um的需求,可喜可贺.   在halcon之屌炸天的自标定(1)中我提到了一片论文: ...