前言:最近准备分享Spring源码相关,看源码的时候感觉打断点会更清晰一些。所以首先整理关于Idea编译Spring步骤及问题解决。希望大家通过本篇小文顺利搭建编译环境,与我一起踏上Spring源码分析之旅!
一、前期运行环境与工具准备
JDK版本:1.8.0_131 (JDK需要1.8以上)
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151. html
Gradel版本:4.4.1
https://gradle.org/releases/
配置教程:https://www.cnblogs.com/linkstar/p/7899191.html Spring源码版本:v5.0.7.RELEASE
https://github.com/spring-projects/spring-framework/releases
IntelliJ IDEA版本:
IntelliJ IDEA 2019.1.3 或 2018.3.6(Ultimate Edition)下载地址:https://www.jetbrains.com/idea/download/
第一部分中JDK、gradel环境变量配置自行配置,本文不作讲解。
二、官网下载spring源码
点击上边Spring源码下载地址进入到github下载页面如图:
点击下载,然后解压到你想解压的目录。大概长这个样子。
用红圈圈住的重点关注一下:
build.gradle:放了一些依赖配置,有点像maven的pom文件
gradle.properties:存放当前Spring的版本,可以对比下看看是不是5.0.8版本
gradlew.bat:放的是项目的构建脚本,不过在本章用不上,本章是使用IDEA去构建
import-into-idea.md:这个是Spring导入IDEA的说明文件,可以根据里面的步骤去导入
三、将项目导入到Idea中
打开idea,在WelCome页面,点击open,选择编译好的Spring源码根目录,
在框架解压目录下执行 ./gradlew :spring-oxm:compileTestJava 命令 编译 spring-oxm 模块
所有编辑完是这样子的
然后构建Spring项目
四、执行spring-webmvc中单元测试
即使整个项目没有error或者红点,也不代表项目已经成功构建好了,我们还需要执行个单元测试试 下,如果能顺利执行单元测试,那证明该项目已经构建成功,这里我用到的是DispatcherServletTests 这个类,直接运行查看结果。
发现构建成功没报错,但运行单元测试报如下异常提示类找不到 ,是因为 spring-context的引用的spring-instrument没有被引用到
需要修改spring-context目录下spring-context.gradle文件 和spring-context-support目录下spring-context-support.gradle 如下图:
再次运行Test类,执行成功,这样就可以开启Spring源码分析旅程啦!!