spring源码转eclipse工程(查看spring源码)

12 篇文章 0 订阅
5 篇文章 0 订阅

spring源码转eclipse工程(查看spring源码)

申明:本文大部分是转载的

  1. 本例spring源码版本是4.0.0的,

    1. 所以jdk需要准备1.8的(不同版本源码要求的jdk不一样)
    2. 下载最新版本的Eclipse Luna
  2. github

Spring 的源码已经从 svn 迁移到 GitHub。而且也改为基于 Gradle 的构建来构建项目。它取代了之前的 Ant+Ivy 系统,所以要构建 Spring 源码环境首先要安装 GitHub 以及 Gradle。

  1. 下载

Windows 系统对应的 GitHub 版本下载地址为: https://desktop.github.com/ 。如图所示:

img

  1. 安装

  2. 点击安装包

img

  1. 开始安装

    img

  2. 下载安装文件

    img

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

img

  1. 登陆github(不需要,用不着)

    img

    1. 结果

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

img

  • 不依赖其他模块:本附件配置将以第三方插件包的形式提供使用,它应该作为依赖关系的底层被依赖,而不能依赖其他业务模块。(DNA核心除外)
  • 扩展灵活:提供统一框架,满足各个项目的个性化附件配置需求。
  1. Gradle

Gradle 是一个基于 Groovy 的构建工具,它使用 Groovy 来编写构建脚本,支持依赖管理和多项目创建,类似 Maven,但比其更加简单轻便。

Gradle 为 Ivy 提供了一个 layer,提供了 build-by-convention 集成,而且他还让你获得许多类似 Maven 的功能。

  1. 下载

Gradle 的下载地址是:http://www.gradle.org/downloads 作为初学者建议选择包含文档和样例源码的压缩文件较好,将下载文件解压。如果你下载的是gradle-xx-all.zip的完整包,它会有以下内容:二进制文件用户手册(包括PDF和HTML两种版本),DSL参考指南,API手册(包括Javadoc和Groovydoc),样例源代码,仅供参考使用。

img

  1. 配置环境变量

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

img

  1. 检查

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

img

  1. Spring源码下载

    1. 直接网站下(这个可以,选择需要的版本源码,三选一)

下载地址:https://github.com/SpringSource/spring-framework/tags/

选择需要的版本下载zip即可。

  1. svn (地址都有了用啥下都一样了,三选一)

下载地址:https://github.com/SpringSource/spring-framework/tags/

Window–>Open Perspective -->SVN资源库研究把源码用svn checkout到本地磁盘

  1. 使用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的源码地址。执行命令后便进入源码下载状态。

img

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

img

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

img

  1. Spring源码构建

使用gradle构建项目

当前的源码并不可以直接导入 Eclipse 中,我们还需要将源码转换为 Eclipse 可以读取的形式。

  1. 单个工程构建(二选一,不推荐)

可以只对感兴趣的工程进行 Eclipse 工程转换,比如我们想要查看 Spring 事务部分的源码,打开命令窗口,将当前目录切换至源码所在目录,这里是 Spring-tx文件夹下,执行命令 gradle cleanidea eclipse 。当窗口出现如下状态说明已经开始执行转换过程,如下图:

img

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

img

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

img

没有编译过的

img编译之后的

打开 Eclipse,将工程导入,导入后目录结构如下图

img

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

img

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

img

依赖的项目出现问题,只需要把需要的几个项目编译之后导入就可以了。

依赖的包出现问题,后边解决。

  1. 批量构建(二选一,推荐虽然时间长,但是减少导入后整理jar包的工作)

可以将所有工程一次性的编译、导入。但是不推荐这样的方式,这样会耗费大量的时间,而且当存在编译错误的时候,你不得不重新编译。

  1. gradlew.bat(预构建)

pring-framework目录里面有一个gradlew.bat批处理文件,双击出现控制台界面,连续按两次回车键,下载各种依赖jar包和dom文件,公司外网不好,用了几个小时,没下下来,这就尴尬了。

  1. 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只能导入整体,不能导入每个工程。

  1. Spring构建后的问题

    1. 依赖的包出现问题(发现批量构建成功后不会报这个错误)

暂时遇到:缺失spring-cglib-repack-3.2.4.jar和spring-objenesis-repack-2.4.jar。

虽然可能从网上下载到这个2个包,但是,由于版本问题,还是不能使用。最好的解决办法就是从源码里边将需要的包提取出来

  1. 下载对应版本的dist.zip文件

下载对应版本的dist.zip文件来提取需要的jar包(distribution,发布用的版本)访问地址:http://repo.springsource.org/libs-release-local/org/springframework/spring/ (可能会很慢)

img

  1. 提取

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

img

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

img

使用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\objenesis

  1. 检查是否生成

查看当前目录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包的目录结构是否正确(因为第一次操作的时候不注意,导致虽然包打好了,但是目录结构不对,最终不能使用)

img

img

img

  1. 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

  1. 安装groovy插件(在线)

step 1:检查自己的eclipse版本:在help->About Eclipse中查看:

img

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

img

step 3:拷贝下载地址http://dist.springsource.org/snapshot/GRECLIPSE/e4.6/

step 4:打开eclipse,在eclipse中,选择help -> Install New Software…:

img

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

img

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

img

img

  1. 重启

重启eclipse,然后clean一下项目就搞定了。

  1. Spring构建后的问题

    在Eclipse菜单File->import选择General下面的Exsiting projects into workspace

    img

img

最后:

我想,可能还有很多人在今年刚过去的金三银四春招中保持着观望的形势,害怕自己的能力不够,或者是安于现状,觉得目前拿着几千的月薪觉得能够接受,那么你就要注意了,这是非常危险的!

我们身为技术人员,最怕的就是安于现状,一直在原地踏步,那么你可能在30岁就会迎来自己的职业危机,因为你工作这么久提升的只有自己的年龄,技术还是万年不变!

如果你想在未来能够自我突破,圆梦大厂,那或许以上这份Java学习资料,你需要阅读阅读,希望能够对你的职业发展有所帮助。

获取方式: 只需你**点赞+关注**后,进[Java架构资源交流群] ,找管理员获取哦-!

我们身为技术人员,最怕的就是安于现状,一直在原地踏步,那么你可能在30岁就会迎来自己的职业危机,因为你工作这么久提升的只有自己的年龄,技术还是万年不变!

如果你想在未来能够自我突破,圆梦大厂,那或许以上这份Java学习资料,你需要阅读阅读,希望能够对你的职业发展有所帮助。

获取方式: 只需你**点赞+关注**后,进[Java架构资源交流群] ,找管理员获取哦-!

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值