Spring源码 环境搭建

目录

  • 说明
  • 安装gradle
  • 导入Spring源码项目
  • 出现问题
  • 创建测试项目

一、说明:

今天你看Spring源码了么?

搭建工具主要是gradle和idea。

二、安装gradle:

  1. 由于spring使用了gradle构建工具,所以接下来先安装gradle。从Gradle官网下载gradle安装包,一般下载最新版本,打开链接https://gradle.org/releases/ 

 

spring源码调试环境 spring源码环境搭建_Gradle

  如上图,选择最新版本下载即可。将下载的安装包gradle-x.x.x-all.zip解压到当前目录,这里我下载的是5.6.4这个版本(原因后面介绍)

spring源码调试环境 spring源码环境搭建_spring_02

   2.配置gradle的环境变量:

  • 配置GRADLE_HOME,如下图

spring源码调试环境 spring源码环境搭建_github_03

  • 配置Path,如下图

spring源码调试环境 spring源码环境搭建_Gradle_04

  • 打开cmd命令行工具,输入gradle -v,能查看到gradle的版本信息表示安装已经成功

 

spring源码调试环境 spring源码环境搭建_spring_05

三、导入Spring源码项目

https:///spring-projects/spring-framework,不建议到github上去下载源码,因为网速实在太慢。

可以到码云Gitee 上的仓库下载Spring的镜像,该镜像每日同步一次,地址是https://gitee.com/mirrors/Spring-Framework,如下图

spring源码调试环境 spring源码环境搭建_spring_06

  点击克隆下载按钮的下载ZIP即可下载源码包。解压下载的源码包到合适的位置,作为项目的工作空间

spring源码调试环境 spring源码环境搭建_github_07

  2.导入项目,打开 IDEA并选择Improt Project

spring源码调试环境 spring源码环境搭建_github_08

   然后指向spring源码目录

spring源码调试环境 spring源码环境搭建_github_09

  设置gradle

 

spring源码调试环境 spring源码环境搭建_github_10

  设置自己的Gradle路径,service directory path是选择合适位置存放gradle的仓库repo,如下图

 

spring源码调试环境 spring源码环境搭建_spring源码调试环境_11

  下面等待Gradle自动构建项目的完成,期间需要等待一段时间

spring源码调试环境 spring源码环境搭建_spring源码调试环境_12


   Gradle自动构建项目,可能会出现一些问题,控制台报错

  1.Could not get unknown property 'classesDir' for main classes

spring源码调试环境 spring源码环境搭建_spring源码调试环境_13

 

原因是Gradle 5.x以上 sourceSets.main.output.classesDir改名字了  sourceSets.main.output.classesDirs,所以需要将文件中的classesDir 修改为 classesDirs

可以直接全局搜索修改,需修改的文件有:build.gradle,oxm.gradle,aspects.gradle

 

    cached version of io.spring.gradle:propdeps-plugin:0.0.9.RELEASE available

此类问题是版本兼容问题,这里我的idea 版本是2018.3 ,在使用gradle  6.8 构建spring时报上面的错,我的idea版本与gradle-6.8不兼容导致的。解决方案是

下载不同gradle版本尝试解决,2018.3版本兼容gradle-5.6.4版本,然后记得修改环境变量并重新构建项目即可。

  3.项目编译的时候报错,找不到符号: 类 DefaultNamingPolicy ,Objenesis ,InstantiatorStrategy ,ObjectInstantiator ,ObjenesisException
具体如下:

spring源码调试环境 spring源码环境搭建_Gradle_14

 

 这个是由于为了避免第三方class冲突,spring把最新的cglib和objenesis重新打包jar并没有放在源码里。解决方案是打开cmd命令行工具,

然后切换工作目录到 spring 源码工程的根目录下,执行执行 gradle objenesisRepackJar 和 gradle cglibRepackJar命令,如下图:

spring源码调试环境 spring源码环境搭建_spring源码调试环境_15

  4.继续重构项目,出现下面的界面表示项目构建完成

spring源码调试环境 spring源码环境搭建_spring源码调试环境_16


  1.File–>New–>Modul–>Gradle–>Java–>Next

spring源码调试环境 spring源码环境搭建_github_17

 

  2.输入ArtifactId: 你的测试项目名,然后一路下一步,最后点击完成,新的模块就建好了

spring源码调试环境 spring源码环境搭建_github_18

   3.打开测试项目的build.gradle文件添加 依赖 beans 和 context;

 

spring源码调试环境 spring源码环境搭建_github_19