本人最近想要研究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. SSH基本管理和配置文件的使用

    服务端:linl_S    IP:10.0.0.15 客户端:lin_C    IP:10.0.0.16   SSHD服务 SSH协议:安全外壳协议.为Secure Shell的缩写.SSH为建立在应 ...

  2. m_Orchestrate learning system---二十九、什么情况下用数据库做配置字段,什么情况下用配置文件做配置

    m_Orchestrate learning system---二十九.什么情况下用数据库做配置字段,什么情况下用配置文件做配置 一.总结 一句话总结: 配置文件 开发人员 重置 数据库 非开发人员 ...

  3. linux利用软件raid搭建iscsi存储

    分区:parted /dev/sdbmklabel gptmkpart primary ext4 0% 100%set 1 raid mdadm -Cv /dev/md0 -n 4 -l5 /dev/ ...

  4. <NET CLR via c# 第4版>笔记 第6章 类型和成员基础

    6.1 类型的各种成员 6.2 类型的可见性 public 全部可见 internal 程序集内可见(如忽略,默认为internal) 可通过设定友元程序集,允许其它程序集访问该程序集中的所有inte ...

  5. vue: register and import

    components/header-nav/menu-nav.vue <template> <div> menu nav </div> </template& ...

  6. PostgreSQL设置事务隔离级别实验

    apple=# begin; BEGIN apple=# set transaction ISOLATION LEVEL read committed ; SET apple=# select * f ...

  7. linux vi常用操作

    1.基本操作 进入vi vi 或者 vim 进入一个文件或者新建一个文件 例如:vim 11.txt vi有3种模式 一般模式:刚进入时.按esc时. 编辑模式:按下字母[i, I, o, O, a, ...

  8. bzoj 4177 Mike的农场

    bzoj 4177 Mike的农场 思维有些江化了,一上来就想费用流做法,但其实就是个最小割啊. 考虑先将所有的收益拿到,再减去不能拿的以及三元组 \((i,j,k)\) 产生的代价.即,先让 \(a ...

  9. 1106-冒泡算法C程序(语法树)

    #include <stdio.h> main() { int i,j,temp; int a[10]; for(i=0;i<10;i++) scanf ("%d,&quo ...

  10. 【MySQL案例】ERROR 1786 (HY000)

    1.1.1. ERROR 1786 (HY000) [环境描写叙述] msyql5.6.14 [报错信息] 运行create table ... select的时候遇到报错: db1 [test] [ ...