• spring源码学习(一):eclipse导入spring源码


    前言

    对于一门技术,我们最先是了解它(what),然后再熟练的使用它(how)以及何时用它(when),最后肯定要看透它(why)。spring作为Java开发人员可以说是最熟悉不过的了,基本每个Java的项目都会用到spring,阅读spring的源码对于一个有理想的程序员来说也是一件必干不可的事,阅读源码我们才能更好的使用它、理解它,在遇到问题的时候我们才能更好的找到问题的原因并高效的解决。

    阅读源码的最好方式就是下载下来然后导入到IDE,通过编写Test代码来Debug跟踪。spring源码导入到eclipse确实要花费一点功夫,容易出错。在这里记录一下。

    环境准备

    1.下载spring源码

    如果不知道spring在Github上的地址,我们可以借助搜索引擎,输入 "spring github"关键字,一般第一个搜索结果就是。

    点进去就跳转到Github上的spring源码了,可以点击绿色的按钮【Clone or download】下载到本地

    spring的Github地址:https://github.com/spring-projects/spring-framework

    2.安装gradle

    spring源码是通过gradle构建的,所以我们需要安装gradle,gradle下载: http://www.gradle.org/downloads ,下载后设置环境变量: GRADLE_HOME = gradle主目录 (D:mysoftgradlegradle-3.5), 并在path中加入;%GRADLE_HOME%in;

    配置完成之后,在命令行窗口输入 gradle -v,验证是否安装成功。

     3.编译

    ① 构建spring源码

    在spring源码的目录中有 import-into-eclipse.bat文件(Windows环境),我们可以直接点击,也可以进入该目录,通过命令行窗口来执行。

    连续两次回车,就可以开始自动构建;

    这种方式一般容易失败。我们通过另外一种方式:进入spring源码目录执行gradle eclipse -x :eclipse执行之后就是一大串的Download,构建时间根据网速来定,我们只需等待。

    下载完后我们可以看到每个模块下多了两个文件:.classpath和.project。

    ② 通过eclipse的import导入Spring-framework源码目录 

    在Eclipse菜单File->import选择General下面的Exsiting projects into workspace,这样就导入完成了。导入源码以后,项目会出现报错的情况,缺少两个jar包。

    我们去网上找下这两个jar包,根据提示我们在模块下建立文件夹 build->libs,并将下载好的两个jar包放入到libs文件夹里面,重新Clean一下项目。

    ③ 安装eclipse的groovy插件

    clean完之后发现项目还报错(关于groovy的,所以eclipse需要集成groovy插件),

    解决:eclipse菜单栏:help -- Install new software:地址输入http://dist.springsource.org/snapshot/GRECLIPSE/e4.5/,下载完即可。

    具体groovy版本和eclipse版本,参考:https://github.com/groovy/groovy-eclipse/wiki

    ④ 还有一个spring-oxm项目报错

    需要在spring-oxm项目路径下输入命令:gradle cleanIdea :spring-oxm:compileTestJava(其实不用也行,只是测试代码报错,但是强迫症的我们不允许),下载完后,刷新该项目即可。 

    ⑤ Groovy compiler 不匹配问题

    这是groovy插件的版本不匹配,解决方法参考:Groovy compiler mismatch problem

    ⑥ 最后效果

    4.版本说明

    eclipse:eclipse 4.5 (Mars)

    spring源码: 

    jdk:jdk 1.8

    gradle:gradle 3.5

    groovy eclipse plugin:e4.5

  • 相关阅读:
    在Oracle怎样查询表中的top10条记录
    Ant
    oracle 时间函数(sysdate)
    oracle 时间函数 (to_date)
    Maven仓库管理器
    数据库中select into from 和 insert into select的区别
    oracle 定时器简单用法
    oraclea 定时器
    XP Home Edition SP2 也可以装 Rational Rose 2003
    Unity3D动态天空之UniSky
  • 原文地址:https://www.cnblogs.com/study-everyday/p/6933727.html
Copyright © 2020-2023  润新知