使用idea编译spring-framework5.0源码

时间:2023-03-09 23:37:03
使用idea编译spring-framework5.0源码

自从迈入java开发这个行当,从来没有好好的研究过源码,深感惭愧,话不多说,今天上一篇使用idea编译spring5.0源码。

以下在win中构建和编译过程分为

  1. jdk环境的配置
  2. gradle的下载和安装
  3. spring-framework的下载和构建
  4. 创建新moudle验证编译是否成功

一、window环境下jdk的配置

该部分请不清楚的小伙伴参照其他文章执行,再次不在赘述,本文中使用jdk1.8.0_131

使用idea编译spring-framework5.0源码

二、spring-frameword 是由gradle构建,下面来下载和安装

下载和选择

  1. 下载地址:https://services.gradle.org/distributions/
  2. 使用idea编译spring-framework5.0源码
  3. 根据spring的版本,当前使用的spring-frameword是使用gradle-4.4编译的,此处选择4.9-bin安装包即可。

安装:

  1. 选择安装路径,最好是英文目录
  2. 解压gradle-4.9-bin.zip
  3. 配置环境变量

GRADLE_HOME:

使用idea编译spring-framework5.0源码

GRADLE_REPOSTORY_HOME:gradle的仓库地址

  使用idea编译spring-framework5.0源码

三、spring-framework 的下载和构建

下载地址1:官网:https://github.com/spring-projects/spring-framework

下载地址2:5.0源码(未编译):https://github.com/escaperun/Spring-Framework-master-5.0.x.git

构建:

构建之前请阅读:spring提供了eclipse和idea两种IDE的方式,本文使用idea

使用idea编译spring-framework5.0源码

阅读引入idea的文件,发现,在构建直线我们需要预先构建 spring-oxm、spring-core,本文提议使用CMD预先构建如下四个目录

  1. ./gradlew :spring-oxm:compileTestJava
  2. ./gradlew :spring-core:compileTestJava
  3. ./gradlew :spring-context:compileTestJava
  4. ./gradlew :spring-beans:compileTestJava

预编译完成:

使用idea编译spring-framework5.0源码

5.引入idea  Import into IntelliJ (File -> New -> Project from Existing Sources -> Navigate to directory -> Select build.gradle);

使用idea编译spring-framework5.0源码

6.引入完成,等待构建完毕,时间长短取决于网速。

No such property: values for class: org.gradle.api.internal.tasks.DefaultTaskDependency
        Possible solutions: values

使用idea编译spring-framework5.0源码

编译不通过,处理方式:

使用idea编译spring-framework5.0源码

7. spring-aspects 编译的过程中会出问题,这里我们把它移除

     使用idea编译spring-framework5.0源码

8.new Module,然后引入依赖

使用idea编译spring-framework5.0源码

使用idea编译spring-framework5.0源码

使用idea编译spring-framework5.0源码

9. 创建测试方法,然后build

使用idea编译spring-framework5.0源码

使用idea编译spring-framework5.0源码

10.执行测试方法

使用idea编译spring-framework5.0源码

至此,spring源码的编译和测试工作完成,我们可以愉快地进行debug了。

如果没有成功,那么就直接下载吧

编译好的spring5.0地址 :

链接:https://pan.baidu.com/s/1AcQp7KUswXPFoEzXx3X8uA

提取码:p3pk
 

ps:本文有不足支出,还望各位小伙伴批评指正,希望能帮助想了解spring的小伙伴。