使用IDEA编译Spring源码(spring5.2.2)

一、编译前准备
1、gradle安装

此次编译使用的gradel版本是5.6.3,安装配置好环境变量。

在这里插入图片描述

2、jdk安装

此次编译使用的是1.8.0_101,安装好后也配置好环境变量;

在这里插入图片描述

3、spring源码下载

本次编译的是spring的5.2.2版本。

​ Spring源码下载:https://github.com/spring-projects/spring-framework

4、修改maven下载地址

下载完spring源码后找到spring目录下的build.gradle文件将里面的地址:

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

替换成

repositories {
	maven { name "Alibaba" ; url "https://maven.aliyun.com/repository/public" }
	maven { name "Bstek" ; url "https://nexus.bsdn.org/content/groups/public" }
	mavenCentral()
	maven { url "https://repo.spring.io/libs-spring-framework-build" }
}
二、开始编译

在spring目录才打开命令窗口;执行“gradlew.bat build”命令即可开始编译,但是这个过程中会有一个test过程,非常耗时,所以可以跳过测试。执行命令"gradlew.bat build -x test"
在这里插入图片描述

当看到上面这段话,恭喜你spring构建完成。

三、导入IDEA

打开idea选择(file>new>Project from Existing Sources)选择spring源码根目录下的`build.gradle‘
在这里插入图片描述

导入完成后,idea自动编译一次。

在这里插入图片描述

当看到successful表示编译完成。

注意:

1、进入setting中配置gradel配置;

在这里插入图片描述

2、进入project structure中配置jdk:

在这里插入图片描述

四、编译源码

1、首先要编译spring-core,在gradel操作栏中找到compileTestJava执行;

在这里插入图片描述

2、在编译spring-context,在gradel操作栏中找到compileTestJava执行;

在这里插入图片描述

待编译完成后,就可以开始spring源码探索之旅了。

五、遇到问题及解决方法

1、当在spring源码中新建一个demo项目时,一切准备完成准备run起来可能会遇到第一个错误:

Error:(354, 51) java: 找不到符号
符号: 变量 CoroutinesUtils
位置: 类 org.springframework.core.ReactiveAdapterRegistry.CoroutinesRegistrar

这个问题是因为一个kotlin中jar依赖问题,解决方法如下:

1、打开project structure,选择library,添加一个依赖;

在这里插入图片描述

选择kotlin-coroutines-5.2.2.BUILD-SNAPSHOT.jar,路径如下;

在这里插入图片描述

选择
在这里插入图片描述
完后后选择rebuild spring-core

在这里插入图片描述
到此,上述问题解决完。

2、还有可能遇到第二个问题:

Error:(26, 38) java: 找不到符号
  符号:   类 InstrumentationSavingAgent
  位置: 程序包 org.springframework.instrument

这个问题需要找到spring-context包下的gradel配置文件,

找到:

optional(project(":spring-instrument"))

将前面的optional修改成compile即可。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值