【spring源码本地DEBUG环境配置】

本文详细介绍了如何在Windows10环境下配置Spring源码的本地开发环境,包括JDK版本升级、Gradle配置、IDEA版本选择、依赖包下载地址修改以及IDEA项目导入和单元测试验证,同时解答了关于JDK.jfr不存在的常见问题。
摘要由CSDN通过智能技术生成


一、源码下载

spring源码地址:
https://github.com/spring-projects/spring-framework

二、本地环境配置

使用的是win10操作系统。
我这里下载的spring是5.3.x的版本。具体的版本从源码中配置文件确认是5.3.32-SNAPSHOT。

2.1、JDK配置

当前版本的源码需要java11。如果你本地已经安装了其他版本的JDK,可以下载解压即用的JDK即可(之后在IDEA中配置SDK即可)。

2.2、gradle配置

gradle与maven功能相同,spring使用gradle。
每个spring的版本使用的gradle版本不同,可以从下面的配置文件中确认:
spring-framework-5.3.x/gradle/wrapper/gradle-wrapper.properties
文件中有如下配置

distributionUrl=https://services.gradle.org/distributions/gradle-7.5.1-bin.zip

可以确认我下载的spring版本需要gradle的版本为7.5.1。

2.3、IDEA版本

我下载的spring版本至少需要IDEA2021版本。因为spring源码中有许多的kotlin代码,我开始是用IDEA2020,编译的时候提示kotlin版本过低,从IDEA中查看对应的插件无法升级,只能升级IDEA的版本到2021。

2.4、spring源码中相关配置修改

2.4.1、gradle下载地址修改

我们如果不进行配置,则会自动从distributionUrl指定的网址下载对应版本的gradle软件。几乎不会下载成功。我们修改为使用本地gradle压缩文件。
源码文件:
spring-framework-5.3.x/gradle/wrapper/gradle-wrapper.properties
文件中有如下配置:

distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip

修改为(你安装gradle时的zip包):

distributionUrl=file:///D:/gradle/gradle-7.5.1-all.zip

2.4.2、依赖包下载地址修改

spring源码中指定了依赖jar包的下载地址。我们需要改成国内的。
文件1:
spring-framework-5.3.x/build.gradle
找到如下的配置:

		repositories {
			mavenCentral()
			maven { url "https://repo.spring.io/libs-spring-framework-build" }
		}

在其中添加阿里仓库地址:

		repositories {
			maven { url "https://maven.aliyun.com/repository/public" }
			maven { url "https://maven.aliyun.com/repository/gradle-plugin" }
			mavenCentral()
			maven { url "https://repo.spring.io/libs-spring-framework-build" }
		}

文件2:
spring-framework-5.3.x/settings.gradle
找到如下的配置:

	repositories {
		mavenCentral()
		gradlePluginPortal()
		maven { url "https://repo.spring.io/release" }
	}

在其中添加阿里仓库地址:

	repositories {
		maven { url "https://maven.aliyun.com/repository/public" }
		maven { url "https://maven.aliyun.com/repository/gradle-plugin" }
		mavenCentral()
		gradlePluginPortal()
		maven { url "https://repo.spring.io/release" }
	}

2.5、源码导入IDEA

首先看下一源码中的文件spring-framework-5.3.x/import-into-idea.md,文件中我们关注如下内容:

## Steps

_Within your locally cloned spring-framework working directory:_

1. Precompile `spring-oxm` with `./gradlew :spring-oxm:compileTestJava`
2. Import into IntelliJ (File -> New -> Project from Existing Sources -> Navigate to directory -> Select build.gradle)
3. When prompted exclude the `spring-aspects` module (or after the import via File-> Project Structure -> Modules)
4. Code away

第一步先不用管。
第二步就是将源码导入IDEA。我们按照Spring的建议导入。
在这里插入图片描述

IDEA打开spring项目后,先配置JDK。
File→Project Structure
在这里插入图片描述
将JDK关联到spring工程,如下图:
在这里插入图片描述
再配置gradle,如下图:
依赖包有个默认下载路径,我们可以进行修改。

在这里插入图片描述
构建窗口出现如下提示则说明工程构建成功(我这里第一次构建下载jar包花了快7分钟,第二次就很快了)。
在这里插入图片描述

2.6、验证

我们执行spring源码中的一个单元测试看一下结果。
选择core包下的任意一个单元测试代码执行,提示如下错误:
在这里插入图片描述
这是因为spring包依赖cglib相关的jar包,这里需要对spring-core模块进行预编译(spring工程导入IDEA步骤中的第一步就是对oxm和core工程预编译)。我们直接对整个工程编译。如下图:先clean再build,之后我们就可以看到spring-core下多了build目录,打开会发现其下的lib目录下会出现cglib相关的jar包。我们再执行单元测试就通过了。
在这里插入图片描述

FAQ

1、jdk.jfr不存在错误

此错误是由于JDK版本导致的错误,请检查JDK的设置(即使你确定设置过了,请再检查下),如下:
1、检查工程的JDK设置(最好顺便看下Modules中每个模块的JDK设置是否正确),如下图:
在这里插入图片描述
2、检查java 编译时的JDK设置,如下图:
在这里插入图片描述

  • 25
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值