Spring源码分析——(001)环境搭建

Posted wpbxin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring源码分析——(001)环境搭建相关的知识,希望对你有一定的参考价值。

注:《Spring5源码分析》汇总可参考:Spring5源码分析(002)——博客汇总 


   本文主要通过官网的源码搭建指引来进行 spring framework 源码分析环境的搭建,目录如下:

1、官方参考

 

2、开发环境和构建工具

  Spring Framework 使用的是 Gradle 进行构建的,阅读源码需要先安装 Gradle。以下是笔者阅读源码用到的开发环境和工具清单:

  • Gradle 5.6.2
  • git 2.23.0.windows.1(Git for Windows)
  • jdk 1.8.0_111
  • IntelliJ IDEA 2019.1 or Eclipse(本次使用IDEA)
  • win 10


3、源码准备

  首先建议将官方仓库 https://github.com/spring-projects/spring-framework Fork到自己的 github 仓库中,因为后续阅读和调试源码的过程中,可能会有一些注释,甚至是代码改动等等,都可以自由提交到自己的仓库中,到哪都可以看,也不用担心丢失的问题。

注:这里记录的时间是 2019-12-08 周日,Spring 的版本已经到 5.2.2.RELEASE 了(2019-12-03 正式 release)。

  拉取代码到本地:

  • 由于已经 Fork 到自己的仓库,笔者这里从自己的仓库中拉取:git clone git@github.com:wpbxin/spring-framework.git
  • 如果想拉取最新的代码,使用官方仓库拉取:git clone git@github.com:spring-projects/spring-framework.git


4、通过命令行进行构建

  为了编译、测试和构建所有的 jars, distribution zips, 和 docs,linux下在 spring-framework 项目的根目录下使用命令:

./gradlew build

   笔者使用的 win10,命令:

gradlew.bat build

   看到有输出 BUILD SUCCESSFUL 就基本OK了

  构建的过程比较慢,有很多的依赖包需要下载,并且需要运行所有的测试,请耐心等待。笔者的渣渣网络,第一次构建时用了一个半小时,囧。。。

 

   也可以使用 -a 参数和 :project 前缀 进行单个模块进行的构建和测试,例如,只对 spring-webmvc 进行构建和测试:

linux 命令:

./gradlew -a :spring-webmvc:test

 win10 命令:

gradlew.bat -a :spring-webmvc:test

 

  Gradle 的jar 包缓存在 $HOME\\.gradle,win10 的是 C:\\Users\\用户名\\.gradle 。可以使用下面的命令将 spring-frame 依赖的 jar 包转移到本地的 maven 仓库中:

linux 命令:

./gradlew publishToMavenLocal -x javadoc

 win10 命令:

gradlew.bat publishToMavenLocal -x javadoc

 

  如果是之前版本的 spring framework,比如 5.1.x 或者更早的,使用命令

linux 命令:

./gradlew install -x javadoc

 win10 命令:

gradlew.bat install -x javadoc

 (以上2019-12-08 周日 记录)


5、导入到 IDEA

(2019-12-09 周一 续)

5.1 预编译 spring-oxm

linux 命令:./gradlew :spring-oxm:compileTestJava

win10 命令:gradlew.bat :spring-oxm:compileTestJava

  看到 BUILD SUCCESSFUL 就说明成功了

5.2 导入idea

  File -> Import Project -> Import project from external model 选择 Gradle,然后下一步,接着导入 

  然后就是自动编译,最后基本OK:

 

 

以上是关于Spring源码分析——(001)环境搭建的主要内容,如果未能解决你的问题,请参考以下文章

Spring源码分析-1 环境搭建

Spring源码分析-1 环境搭建

Spring5.x源码分析 | 从踩坑到放弃之环境搭建

Spring 源码分析--整体架构和环境搭建

手把手教你搭建 Spring 源码分析环境(昨天视频笔记)

spring练习,在Eclipse搭建的Spring开发环境中,使用set注入方式,实现对象的依赖关系,通过ClassPathXmlApplicationContext实体类获取Bean对象(代码片段