搭建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. springboot ElasticsearchRepository date_histogram 聚合查询

    NativeSearchQueryBuilder nsqb = new NativeSearchQueryBuilder(); DateHistogramAggregationBuilder dhb ...

  2. 胖AP组建小型企业WLAN

    胖ap组网 无线路由器wrt配置 使用自动连接时,会从无线路由器第一个端口开始连接,但那是接入外网的端口,因此和二层交换机相连的线要手动更改一下,否则和交换机相连的设备无法dhcp获取ip 打开无线路 ...

  3. Java-Java调用mysqldump进行数据库备份

    1 public ResultData backupDatabase(Integer type) { 2 // 构建备份sql的文件名 3 String sqlFileName = "tes ...

  4. my.ini

    [client] #客户端设置,即客户端默认的连接参数 # socket = /data/mysqldata/3306/mysql.sock #用于本地连接的socket套接字 # 默认连接端口 po ...

  5. Java基础学习:8、构造器(构造方法)和this

    一.构造器: 1.定义:构造器是类的特殊方法,它的主要作用是完成对象的初始化.          即在创建对象时初始化对象.   本质是方法. 2.特点: a.方法名和类名一致. b.无返回值. c. ...

  6. (三)用go实现平衡二叉树

    本篇,我们用go简单的实现平衡二叉查找树.具体原理参考大佬博客即可:AVL树(一)之 图文解析 和 C语言的实现 1.节点定义 type AVLNode struct{ data int height ...

  7. 【转载】synopsys中工具介绍,VCS,DC,PT等

    https://blog.csdn.net/fangxiangeng/article/details/80981536

  8. HTML中javascript的<script>标签使用方法详解

    只要一提到把JavaScript放到网页中,就不得不涉及Web的核心语言--HTML.在当初开发JavaScript的时候,Netscape要解决的一个重要问题就是如何做到让JavaScript既能与 ...

  9. 【服务器数据恢复】HP EVA存储多块硬盘离线的数据恢复案例

    服务器故障&检测&分析:某品牌EVA存储设备中的RAID5磁盘有两块硬盘掉线,lun丢失.硬件工程师对故障服务器进行物理故障检测,发现掉线硬盘能够正常读取,无物理故障,也没有发现坏道. ...

  10. matplotlib处理数据可是化的时候出现中文显示异常,为[][]的解决方法

    1.在使用matplotlib处理数据实现可是化操作的时候,处于语言习惯,经常会使用中文做图表备注,而中文显示会出现异常,如下图: 中文显示异常 那如何解决呢,实际上我们只需要在代码中添加两行内容即可 ...