Spring源码解析(一)---spring源码的下载编译

前言

  spring是一种开源的轻量级的 Io C 和AOP 的容器框架,具体原理操作配置在本人写的spring框架分类中详细介绍了,spring框架详解。我们知道了如何使用以及它的基本特征,但是对其内在是如何实现该功能的没有深刻的了解过。所以新建一个系列,会通过spring源码结合自身的理解,写一系列关于此框架的心得,愿与大家共勉!

一 spring 源码下载

     1.安装GitHub

  作为一个程序员对GitHub肯定不陌生,是一个上传下载代码的仓库管理器。可以去上网搜索GitHub下载,最好去官网下载。  GitHub下载

 下载完后解压安装,安装成功后在快捷菜单中会出现如下图的图标:

Spring源码解析(一)---spring源码的下载编译_第1张图片

安装完毕 打开Gitshell,新建一个你要保存源码的文件夹,然后cd 这个文件夹,

输入命令:git clone git://github.com/SpringSource/Spring-framework.git,等待其下载

Spring源码解析(一)---spring源码的下载编译_第2张图片

下载完成你可以在这个文件夹下找到如下文件

Spring源码解析(一)---spring源码的下载编译_第3张图片

2.直接下载

这里有官方的下载地址:https://github.com/spring-projects/spring-framework/releases,点击下载解压即可。

注意:避免后续编译出错,我们要注意jdk版本,一般来说spring4x后用的都是jdk1.8,所以你需要保证你的jdk版本。你也可以点击查看解压后的build.gradle文件,如下图:我这里因为spring版本挺新,所以需要的是jdk1.8

Spring源码解析(一)---spring源码的下载编译_第4张图片

二 spring源码编译 

1.安装Gradle

Gradle是以Groovy语言为基础,面向Java应用为主。基于DSL(领域特定语言)语法的自动化构建工具。类似于我们熟悉的Maven  下载地址:gradle下载 

Spring源码解析(一)---spring源码的下载编译_第5张图片x

这时候又遇到个问题,这么多gradle版本如何抉择呢?

还是看下载解压后的源码,看如下箭头的脚本,

Spring源码解析(一)---spring源码的下载编译_第6张图片

打开后如下图

Spring源码解析(一)---spring源码的下载编译_第7张图片

它再帮你下载,所以这个版本肯定没问题的,为什么不用这种方式,因为觉得速度太慢了,还是自己直接去官网下载这个4.10版本,看清楚是4.10而不是4.01,之前犯过这个低级错误。

下载完之后解压到你指定的文件夹中,然后进行环境变量配置。

说一下我是如何选择gradle版本的吧,经常会因为gradle版本的问题导致后续编译不成功。下载好的源码解压后,如下图

Spring源码解析(一)---spring源码的下载编译_第8张图片

Spring源码解析(一)---spring源码的下载编译_第9张图片

 

测试gradle有没有安装成功,

Spring源码解析(一)---spring源码的下载编译_第10张图片

 

安装完毕

二 执行编译命令

我们需要哪个工程就去编译哪工程,如spring-beans:cd e://spring源码/Spring-framework/spring-beans,然后再执行gradle cleanIdea eclipse。温馨提示对于可能报的错误不妨先看后面的部分,作修改后再运行此命令,即可将Spring-beans工程转换为eclipse可以识别的工程。等待时间让其自行编译Spring源码解析(一)---spring源码的下载编译_第11张图片

 

 

编译完成。

当然本人也走了不少弯路,这里将我遇到的问题说说

1.> No such property: immutableValues for class: org.gradle.api.internal.tasks.Def
aultTaskDependency

Spring源码解析(一)---spring源码的下载编译_第12张图片

解决办法:

 找到spring-bean下的spring-beans.gradle,打开将下面几行注释掉

2.A problem occurred evaluating project ':spring-test'.
> Could not find method useJUnitPlatform() for arguments [spring_test_8r19wmak7j
swu9zlpio8zwueh$_run_closure4$_closure13@7e55ec4b] on task ':spring-test:testJUn
itJupiter' of type org.gradle.api.tasks.testing.Test.

Spring源码解析(一)---spring源码的下载编译_第13张图片

解决办法:打开spring-test下的spring-test.gradle,将下面的报错的方法注释掉

Spring源码解析(一)---spring源码的下载编译_第14张图片

修改完后运行成功

Spring源码解析(一)---spring源码的下载编译_第15张图片

我陆续将spring-core,spring-jcl,spring-instrument,spring-expression,spring-context, spring-aop给编译好

你也可以选择直接一起编译。

四 导入eclipse

 这是我目前需要用到的一些项目

Spring源码解析(一)---spring源码的下载编译_第16张图片

倒入后出现多个感叹号,证明jar包错误或者缺失,点击项目build path--Configure build path,出现如下图

Spring源码解析(一)---spring源码的下载编译_第17张图片

这些包我们该如何获取呢?

在spring-framework目录下执行gradle objenesisRepackJar和gradle cglibRepackJar命令,会在Spring-framework\spring-core\build\libs目录下生成jar包。

Spring源码解析(一)---spring源码的下载编译_第18张图片

将生成的jar包替换

Spring源码解析(一)---spring源码的下载编译_第19张图片

然后将其jar选中,apply-->ok clean下项目

Spring源码解析(一)---spring源码的下载编译_第20张图片

以上的操作全部完成后,你以为大功告成了吗?但是你又看到了spring-beans有个红叉

Spring源码解析(一)---spring源码的下载编译_第21张图片

解决办法:

此时我们需要安装groovy插件,help-install new software

从Groovy官网复制安装groovy插件的地址:根据你当前eclipse版本选择对应的地址

Groovy官网:http://groovy.codehaus.org/

Groovy插件的地址:http://dist.springsource.org/milestone/GRECLIPSE/e4.4/

然后全选后,开始下载,下载完后,重启eclipse,然后clean一下项目就搞定了。

Spring源码解析(一)---spring源码的下载编译_第22张图片

 

Spring源码解析(一)---spring源码的下载编译_第23张图片

 

总结:这个spring源码下载编译,虽然步骤不多,但是中途也犯了各种错误,整理出这一篇博客与读者共鸣。

你可能感兴趣的:(spring源码)