搭建Spring的源码环境,包括以下几个步骤:

1.从Spring官网一步步找到Spring源码在github上的位置,并拉取Spring源码

2.安装和配置Gradle,用于构建Spring的源码

3.将Spring源码导入到IDEA中,IDEA结合Gradle来构建Spring的源码

从github拉取Spring的源码

好了,在开始源码分析前,我们先搭建下Spring的源码环境,Spring源码目前是在github上托管的,我们通过链接:https://spring.io/projects/spring-framework,到spring官网看一下:

通过点击图片右上角的猫头图标,我们可以定位到spring源码在github上的位置:

Spring源码默认是位于main分支上的,本次专栏采用的是v5.2.6.RELEASE这个版本的代码,所以,大家可以先切换到分支5.2.x:

然后基于分支5.2.x再切换到v5.2.6.RELEASE这个tag上:

然后,我们可以下载这个tag下对应的Spring源码ZIP包:

或者,大家可以像我一样,直接在本地的git上拉取spring的源码:

git的搭建这里就不赘述了,大家可以网上找些资料,不过,由于Spring源码是在国外,下载的速度可能会慢一点。

当我们成功从github拉取源码到本地之后,再通过checkout命令,切换到v5.2.6.RELEASE这个tag中:

到现在为止,Spring源码我们已经准备好了,但是,因为Spring源码的构建并不是通过Maven来构建的,而是在国外比较受欢迎的Gradle,所以,接下来我们还得要在本地安装一下Gradle以便构建Spring源码。

Gradle的下载和环境配置

我们可以通过链接 https://gradle.org/releases/ ,到Gradle官网看下:

我们选择下载v6.5这个版本,然后在解压到本地目录中:

然后,我们还需要在电脑中配置下Gradle的环境变量,并将Gradle的bin目录添加到Path路径中:

接着,我们打开命令窗口,输入命令“gradle -version”再回车,如果看到如下图一样的Gradle版本信息,就说明Gradle在本地安装成功了:

将Spring源码导入IDEA中

接下来,我们可以准备将下载好的Spring源码导入IDEA中了,导入IDEA之前,我们需要修改一下Spring源码中,关于构建Gradle的一些配置,方便后续Spring源码的构建。

我们在spring-framework源码目录下,可以找到gradle.properties、settings.gradle和build.gradle这三个配置文件,我们需要调整下这些配置的参数,方便Gradle编译Spring源码。

其中,gradle.properties配置文件调整后如下:

version=5.2.6.RELEASE
## Gradle编译时,会下载很多东西,占用内存较大,建议适当调大点
org.gradle.jvmargs=-Xmx2048M
## 开启Gradle的缓存
org.gradle.caching=true
## 开启Gradle并行编译
org.gradle.parallel=true
## 开启Gradle守护进程模式
org.gradle.daemon=true

而在settings.gradle配置文件中的repositories配置项,需要再添加阿里云的仓库地址:

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

这样可以加快Gradle构建Spring源码的速度:

而在build.gradle配置文件中的repositores配置项中,也需要添加阿里云仓库的配置:

maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' }
maven { url 'https://maven.aliyun.com/nexus/content/repositories/jcenter'}

同时,我们需要注释以下的配置,因为在Gradle构建v5.2.6.RELEASE版本的Spring源码时,相应的jar包可能下载不到了,如果不注释掉的话可能会导致Gradle构建失败,这个坑大家需要注意下:

最后,我们只需要将spring源码导入到IDEA中即可,Gradle默认就会启动后台的进程来构建Spring源码了,如下图所示:

总结

好了,今天的知识点,我们就讲到这里了,我们来总结一下吧。

这一节主要就是带大家搭建了Spring的源码环境,包括从github上拉取Spring源码、下载和配置Gradle、调整Spring源码中的Gradle配置,最终将Spring源码导入到IDEA中。

从下一节开始,我们就开始着手准备Spring源码的分析了。

搭建Spring的源码环境的更多相关文章

  1. Idea搭建spring framework源码环境

    spring的源码目前放在github上,https://github.com/spring-projects/spring-framework 一.安装Git 二.安装Gradle gradle为解 ...

  2. DolphinScheduler1.3.2源码分析(二)搭建源码环境以及启动项目

    前置依赖组件安装 找一台服务器,或者本地的虚拟机,然后在服务器上安装好jdk,zookeeper,mysql. 1.源码调试环境搭建 源码环境搭建可以参考DolphinScheduler官方网站的开发 ...

  3. Linux Kafka源码环境搭建

    本文主要讲述的是如何搭建Kafka的源码环境,主要针对的Linux操作系统下IntelliJ IDEA编译器,其余操作系统或者IDE可以类推. 1.安装和配置JDK确认JDK版本至少为1.7,最好是1 ...

  4. windows下IntelliJ IDEA搭建kafka源码环境

    于kafka核心原理的资料,网上有很多,但是如果不自己研究其源码,永远是知其然而不知所以然.下面就来演示如何在windows环境下来编译kafka源码,并通过IntelliJ IDEA开发工具搭建ka ...

  5. 【一步一步】Spring 源码环境搭建

    平时项目中基本上都会用到spring,但是源码还没有深入的了解过.趁这段时间稍微空闲点,开始研究下spring 源码.下面是spring 源码的环境搭建. 主要分为如下步骤: ①安装jdk,gradl ...

  6. Ubuntu搭建Spring源码环境常见问题

    在一心想要学习Spring框架源码时,我们会遇到很多麻烦的问题.开始本文前,你只需要拥有一个装好IDEA的Ubuntu系统就可以愉快启程了.如果还没有IDEA,可以参考在Ubuntu上安装Intell ...

  7. 精尽Spring MVC源码分析 - 调式环境搭建

    该系列文档是本人在学习 Spring MVC 的源码过程中总结下来的,可能对读者不太友好,请结合我的源码注释 Spring MVC 源码分析 GitHub 地址 进行阅读 Spring 版本:5.2. ...

  8. 基于Eclipse搭建Hadoop源码环境

    Hadoop使用ant+ivy组织工程,无法直接导入Eclipse中.本文将介绍如何基于Eclipse搭建Hadoop源码环境. 准备工作 本文使用的操作系统为CentOS.需要的软件版本:hadoo ...

  9. 使用IntelliJ IDEA搭建kafka源码环境时遇到Output path错误解决办法

    kafka源码环境搭建好之后,需要在IntelliJ IDEA开发工具中以debug方式启动kafka服务器来测试消息的生产和消费. 但是在启动kafka.Kafka类中的main方法(也就是运行 k ...

  10. 【ZooKeeper系列】3.ZooKeeper源码环境搭建

    前文阅读: [ZooKeeper系列]1.ZooKeeper单机版.伪集群和集群环境搭建 [ZooKeeper系列]2.用Java实现ZooKeeper API的调用 在系列的前两篇文章中,介绍了Zo ...

随机推荐

  1. pip 下载换源

    命令:[pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple]

  2. HIVE-文字提取

    regexp_extract(filed,('aaa|bbb|ccc|ddd'),0) 从字段filed中提取含有aaa或bbb或ccc或ddd的string信息

  3. 一、100ASK_IMX6ULL嵌入式裸板学习_LED实验(知识点补充二)

    MUX是什么?   MUX(multiplexer数据选择器):   在多路数据传送过程中,能够根据需要将其中任意一路选出来的电路,叫做数据选择器,也称多路选择器或多路开关.   多路转换器的作用主要 ...

  4. 「DIARY」NOI2021 小结

    这篇就主要说一下个人感悟吧,虽然不是金牌选手,但还是希望多多少少能对后来者提供些帮助 1. 预备 省选到 NOI 的准备,就当讲讲故事. 省选考下来好像不是很行,本来退役记都写了一半了,结果发现省队最 ...

  5. 实验一-Password engine-加密API研究

    加密API研究 181210 一.列举API在编程中的使用方式 GMT 0016-2012 类型定义 typedef struct Struct_DEVINFO{ VERSION Version; C ...

  6. linux 中后台运行python脚本

    nohup python yourscript.py &可以让你的程序在后台运行,控制台输出导向nohup.out文件 使用nobup命令 结尾处加一个& 符号

  7. Windows流媒体怎么关闭。

    点击白色框,搜索服务. 步骤阅读 步骤阅读 2 选本地服务旁打开,然后下拉服务. 步骤阅读 步骤阅读 3 选择media,然后右键它属性. 步骤阅读 步骤阅读 4 然后点击停止,点击手动. 步骤阅读 ...

  8. 001. html篇之《基础内容》

    html基础内容 1. 什么是html Hypertext Markup Language 超文本标记语言 2. 基本结构 <!DOCTYPE html> <!-- 此为html5的 ...

  9. Python学习笔记(三)数据类型转换

    一.输入输出函数 1.input() 输入函数,内置函数,用来获取用户输入数据,返回值为字符串 运行到此函数会阻塞或暂停程序 示例: 1 str_data = input('请输入数据:') 2 st ...

  10. ASR6601:国产化lora SOC芯片兼容SX1262/SX1268

    ASR6601为目前首颗国产化支持LoRaWAN低功耗广域网无线通信SoC芯片.ASR6601在单芯片上集成了通用微控制器和射频单元(SX1262),包括射频收发器,调制解调器和48 MHz 主频.A ...