如何构建Spring源码

如何构建Spring源码

手写Spring框架项目:https://github.com/TyCoding/mini-spring

在此项目中我参考的版本:

  • JDK源码版本:1.8
  • Spring源码版本:Spring5.2.x

那么,在此我们说一下如何在本地环境构建Spring源码。

Tips:当然你也可以在任意引用Spring Maven依赖的项目中查看源码,相对而言,本地构建Spring源码的好处是可以本地修改和测试源码,以及函数引用跳转查询也非常方便。

构建

首先访问Github仓库地址:https://github.com/spring-projects/spring-framework

找到某个Releases版本源码包,这里作者就使用最新的v5.2.24.RELEASE:

https://github.com/spring-projects/spring-framework/releases/tag/v5.2.24.RELEASE

使用IDEA打开源码项目:

如何构建Spring源码
image-20230419110228745

之后,等待Gradle下载依赖即可。

注意:

  • 需要IDEA开启了Gradle插件
  • 作者本人电脑并没有配置单独的gradle环境(使用IDEA默认的环境)

可能你在用Gradle构建时,可能会出现下载慢的情况,虽然网上有各种配置国内加速源的方式可以参考,例如在gradle.properties配置:

# 阿里云Maven仓库
mavenRepoUrl=https://maven.aliyun.com/repository/public

# Gradle镜像加速配置
systemProp.http.proxyHost=127.0.0.1
systemProp.http.proxyPort=7890
systemProp.https.proxyHost=127.0.0.1
systemProp.https.proxyPort=7890

不过作者还是建议本地安装好🪜工具,这是最快速的方案,实测1-2分钟就构建好了。

构建完成后,左侧的各个模块都被识别成了Java项目,其中,我们可以找任意一个测试类测试一下现在的环境能够运行,运行如下测试类:

如何构建Spring源码
image-20230419113142270

注意: Spring源码测试类中都使用的assertThat断言工具,他其实的主要目的是校验结果是否匹配,如果不匹配会抛出断言异常信息;因此和我们传统的log日志不同。

Tips

  1. 由于我们直接下载Releases版本,因此并没有git配置,项目可能会报错没有git环境,这个无需理睬(或者手动执行git init
  2. 测试中,即使IDEA完成了Gradle项目构建,仍可能会存在某些测试类的依赖not found情况(这个根据情况注释代码就可以了)
  3. 由于作者本人使用Mac系统,因此IDEA默认的gradle配置是在用户目录下;对于Win系统而言,Gradle配置会被下载到C盘,可能根据电脑情况考虑手动配置gradle目录
  4. 在IDEA配置中将此项目设置为使用JDK1.8版本
如何构建Spring源码
image-20230419120459233

注意:在Spring源码中Gradle配置默认使用了本地的Maven仓库作为依赖下载位置(并不会再单独将依赖下载到其他位置),如下:

如何构建Spring源码
image-20230419121214924

Spring源码专栏

此专栏将从Spring源码角度整体分析Spring设计思路以及常见的面试题

配套作者的手写Spring的项目:https://github.com/TyCoding/mini-spring 。该项目中包含各个阶段的开发文档,有关Spring源码更详细的分析测试文档请查阅:https://github.com/TyCoding/mini-spring/tree/main/docs

联系我

  • 个人博客:http://tycoding.cn/
  • GitHub:https://github.com/tycoding
  • 微信公众号:程序员涂陌
  • QQ交流群:866685601


原文始发于微信公众号(程序员涂陌):如何构建Spring源码

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由半码博客整理,本文链接:https://www.bmabk.com/index.php/post/145629.html

(0)

相关推荐

发表回复

登录后才能评论
半码博客——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!