Gradle搭建spring源码调试

本文提供Spring源码搭建文档,包含下载Spring源码和Gradle,配置Gradle环境与本地仓库,将Spring源码导入Idea,结合官方说明预编译项目,解决已知问题,进行工程编译整合,最后新建模块写Demo验证构建是否成功,并给出相关参考链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前端时间深究了下sopring源码,整理了下搭建文档,仅供参考。
1、下载spring源码https://github.com/spring-projects/spring-framework ,目前现在最新的是spring5.3.0
2、gradle下载地址:https://services.gradle.org/distributions/ 

 下载gradle-6.5.1-all.zip,然后解压到一个目录下,并配置gradle环境变量、path

 

3、配置gradle默认的本地仓库,gradle和maven类似,工作时也需要一个本地仓库,管理工程jar包,可做如下配置,新增GRADLE_USER_HOME,路径配置成需要的本地仓库路径即可。

环境遍历配置好后cmd检查 gradle –v

4、打开下载好的spring-framework-master

导入到idea前先看看这些文件或准备工作


4.1 修改settings.gradle文件(懂得人都懂,加上阿里云maven仓库)

修改build.gradle文件,加上使用阿里云仓库

maven { url 'https://maven.aliyun.com/repository/public' }

maven { url 'https://maven.aliyun.com/repository/jcenter'}

根目录下和buildSrc目录下都要使用阿里云镜像

修改gradle.properties文件

gradlePropertiesProp=gradlePropertiesValue
sysProp=shouldBeOverWrittenBySysProp
systemProp.system=systemValue
org.gradle.caching=false
org.gradle.jvmargs=-Xms1024m -Xmx2048m 
org.gradle.parallel=true
org.gradle.daemon=true
org.gradle.configureondemand=true

 

5、spring源码导入到idea中

直接通过open打开spring源码,如果默认gradle自动编译,则cancel取消先,因为还需要修改配置

修改spring源码gradle文件wrapper下gradle-wrapper.properties的distributionUrl = 本地下载的文件

因为刚刚下载的是gradle-6.5.1-all.zip,含有gradle源码,所以这里可以指定本地的即可。

distributionUrl=file:///E:/XXXXXX/gradle-6.5.1-all.zip

这里说明下 也可以不改,直接在线下载即可

选择jdk : 右键file-》Project Structure….

执行构建

6、结合源码中import-into-idea.md文件,

这是官方提供的spring源码导入idea的步骤和注意说明

在本地克隆的 spring-framework框架的工作目录里:

使用./gradlew :spring-oxm:compileTestJava命令预编译spring-oxm项目。

导入IntelliJ IDEA(通过File -> New -> Project from Existing Sources -> Navigate to directory -> Select build.gradle)

当提示排除spring-aspects模块时(或者在导入之后通过File-> Project Structure -> Modules

继续编码

已知问题

1.spring-core和spring-oxm由于重新打包的依赖项需要先进行预编译。(可以通过 https://youtrack.jetbrains.com/issue/IDEA-160605查看构建的*RepackJar任务)
2.
由于引用了IntelliJ IDEA不知道的aspects类型,所以“spring-aspects”不能编译,可以在https://youtrack.jetbrains.com/issue/IDEA-64446查看详情。意味着,可以将“spring-aspects”从项目中排除,以避免编译错误。
3.
虽然JUnit测试通过Gradle命令行,但有些测试在使用IntelliJ IDEA运行时可能会失败。这个问题仍在解决中。如果试图从IntelliJ IDEA中运行所有的JUnit测试,您可能需要设置以下VM选项以避免内存不足错误: -XX:MaxPermSize=2048m -Xmx2048m -XX:MaxHeapSize=2048m
4.
如果您在IDE中调用“Rebuild Project”,则必须再次生成一些使用spring-oxm模块的测试资源(通过命令./gradlew :spring-oxm:compileTestJava


结合上面的文档说明,可以先设置VM参数

 

然后按照第一步先编译 spring-oxm ,双击compileTestJava

同理预编译spring-core    (注意 :如果jdk1.8遇到缺jfr包,则需要提高jdk版本)
7、开始整合工程的编译
选择整合spring -tasks–build –build

8、实践是检验真理的唯一标准,那么怎样验证我们上面的构建是否成功呢,写个demo测试一下就好了,下面进入验证过程。

在spring-framework-master项目下新建module,选择使用左侧gradle,右侧选择JDK版本(一般默认),选择构建java,Next
parent选择我们目前的spring项目,给module起名后finish
依赖spring的模块,我们在我们刚刚新建的模块下build.gradle文件中修改使用阿里云仓库,同时依赖spring-context模块。

视频参考https://www.bilibili.com/video/av841256147
参考https://blog.youkuaiyun.com/baomw/article/details/83956300

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值