搭建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. Blog-3

    前言 这几周的作业所涉及的知识点有数据的封装和.继承与多态.正则表达式,还有抽象类和接口,另外还有javafx的一些基本知识.题量适中,但是难度对于我来说是比较大的.总的来说就是跟以前的题目差不多,只 ...

  2. 「postOI」Colouring Game

    题意 有 \(n\) 个格子排成一行,一开始每个格子上涂了蓝色或红色. Alice 和 Bob 用这些格子做游戏.Alice 先手,两人轮流操作: Alice 操作时,选择两个相邻的格子,其中至少要有 ...

  3. java spring 理解

    1.spring IOC容器 其实就是 new 了一个 ApplicationContext 类对象.->应用上下文对象. 2.应用上下文对象 实例化.配置,并管理 bean. 所以上下文对象是 ...

  4. hexo博客重新部署

    date: 2020-08-04 updated: 2020-12-31 summary: 博客重新部署到国内Gitee(加速访问速度) hexo博客重新部署(从GitHub到Gitee) (博客迁移 ...

  5. win10 打开剪切板失败 拒绝访问 已解决!!

    问题 剪切板使用混乱,导致本地无法复制粘贴 解决办法 terminal运行echo off | clip

  6. docker登录Ubuntu出现error storing credentials - err: exit status 1, out: `Cannot autolaunch D-Bus without X11 $DISPLAY`的解决方法

    命令行登录docker时,在Ubuntu 18.04下可能会出现 error storing credentials - err: exit status 1, out: `Cannot autola ...

  7. h5 json 生成excel

    引入库文件 创建下载按钮 Download Demo Excel 实现转换 var data = [ ["Joa Doe", "joa@doe.com"], [ ...

  8. php 反序列化字符串逃逸

    这里总结一下反序列化字符串逃逸的知识点 反序列化字符串逃逸分为 被过滤后字符增多和字符减少的情况 这里就不讲之前的基础知识了 大家看其它师傅写的博客就可以了 很多师傅的文章写的都很细 现在直接就开始进 ...

  9. MyBatis_02_(搭建Mybatis)

    搭建MyBatis 1-开发环境 2-创建Maven工程 2.1- 打包方式 2.2 导入依赖 <!-- 打包方式jar--> <packaging>jar</packa ...

  10. 前端面试-经典的Vue面试题

    面试总结三大模块:Vue双向绑定及原理.生命周期.组件通信.Vue官方API 目录:1.Vue双向绑定及原理 1.1你对MVVM是怎么理解的? 1.2你对Vue响应式原理是怎么理解的?是否可以实现一个 ...