Spring 5.2.x 源码环境搭建(Windows 系统环境下)
前期准备
1、确保本机已经安装好了 Git

2、Jdk 版本至少为 1.8

3、安装好 IntelliJ IDEA (其他开发工具,如 eclipse、Spring Tool Suite 等也是可以的),因为使用 IDEA 可以直接比较版本间的差异,如图所示:

源码构建
1、获取 Spring 源码
在需要使用 git clone 命令的方式将源码拉取到本地,命令如下:
git clone https://github.com/spring-projects/spring-framework.git
然后切换到 5.2.x 分支,命令如下:
git checkout origin/5.2.x
这个过程可能会耗费比较长的时间,此外还可以直接下载源码压缩包,如图所示:

2、添加阿里云镜像
在编译过程中,Spring 会自动下载依赖包,默认使用的是官方镜像,下载比较慢,所以我们提前添加好国内镜像,将下面这行代码粘贴到 build.gradle 文件中的 repositories 节点下即可:
//添加阿里云镜像
maven { url "http://maven.aliyun.com/nexus/content/groups/public" }
如下图所示:

3、预先编译 spring-oxm 模块
打开命令行窗口,并切换到源码所在文件夹,执行以下命令:
gradlew :spring-oxm:compileTestJava
出现 BUILD SUCCESS 字样时说明构建成功。
4、根据编译后的源码下载并安装对应的版本的 Gradle
在完成 spring-oxm 模块的编译后,会在当前目录生成一个 .gradle 的文件夹:

打开后可以查看对应的 Gradle 版本:

可以直接在 https://gradle.org/releases/ 网站上下载对应的版本,注意要选择 binary-only 的。
安装好后记得配置 Gradle 的环境变量:
新增 GRADLE_HOME 环境变量,指向 Gradle 解压目录
配置 Path 环境变量:追加 %GRADLE_HOME%\bin
之后测试是否安装成,在命令行中输入:gradle -v 即可查看版本。

5、给 Gradle 配置国内镜像
进入 Gradl e安装目录,在 init.d 目录下新建 init.gradle 文件,并添加以下内容:
allprojects{
repositories {
def REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public/'
all { ArtifactRepository repo ->
def url = repo.url.toString()
if ((repo instanceof MavenArtifactRepository) && (url.startsWith('https://repo1.maven.org/maven2') || url.startsWith('https://jcenter.bintray.com'))) {
project.logger.lifecycle 'Repository ${repo.url} replaced by $REPOSITORY_URL .'
remove repo
}
}
maven {
url REPOSITORY_URL
}
}
}
参考官方文档:
https://github.com/spring-projects/spring-framework/wiki/Build-from-Source
https://github.com/spring-projects/spring-framework/blob/master/import-into-idea.md
Spring 5.2.x 源码环境搭建(Windows 系统环境下)的更多相关文章
- Linux Kafka源码环境搭建
本文主要讲述的是如何搭建Kafka的源码环境,主要针对的Linux操作系统下IntelliJ IDEA编译器,其余操作系统或者IDE可以类推. 1.安装和配置JDK确认JDK版本至少为1.7,最好是1 ...
- 【ZooKeeper系列】3.ZooKeeper源码环境搭建
前文阅读: [ZooKeeper系列]1.ZooKeeper单机版.伪集群和集群环境搭建 [ZooKeeper系列]2.用Java实现ZooKeeper API的调用 在系列的前两篇文章中,介绍了Zo ...
- MyBatis源码环境搭建
之前研究mybatis都是参考前面学习的人的一些经验,并没有自己搭建源码环境进行.现在以mybatis3.4.6版本搭建,搭建过程中各种failed,下面大致记录环境搭建过程. 1.mybatis3. ...
- 【一步一步】Spring 源码环境搭建
平时项目中基本上都会用到spring,但是源码还没有深入的了解过.趁这段时间稍微空闲点,开始研究下spring 源码.下面是spring 源码的环境搭建. 主要分为如下步骤: ①安装jdk,gradl ...
- Spring源码阅读 源码环境搭建(一)
ring 源码阅读的搭建(一) 一 下载spring源码 进入官方网页:https://spring.io/projects/spring-framework 进入相关的github位置,下载zip包 ...
- Spring源码环境搭建
Spring源码在github上,地址是https://github.com/spring-projects/spring-framework/,选择5.3.x版本,直接从github上克隆项目网速很 ...
- 1-web应用之LAMP源码环境搭建
目录 一.LAMP环境的介绍 1.LAMP环境的重要性 2.LAMP组件介绍 二.Apache源码安装 1.下载Apache以及相关依赖包 2.安装Apache以及相关 ...
- Hadoop源码学习笔记之NameNode启动场景流程一:源码环境搭建和项目模块及NameNode结构简单介绍
最近在跟着一个大佬学习Hadoop底层源码及架构等知识点,觉得有必要记录下来这个学习过程.想到了这个废弃已久的blog账号,决定重新开始更新. 主要分以下几步来进行源码学习: 一.搭建源码阅读环境二. ...
- Tomcat7源码环境搭建
一.下载Tomcat7源码 从官网上下载Tomcat源码, http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.70/src/apache-t ...
随机推荐
- mysql基础之-mysql数据控制语言DCL(七)
0x01 mysql中的权限分布 mysql中的用户信息都存储在系统数据库mysql的user表中 查询语句:select host,user,password from mysql.user; 创建 ...
- Linux命令总结大全,包含所有linux命令
使用说明:此文档包含所有的Linux命令,只有你想不到的没有你看不到的,此文档共计10万余字,有8400多行,预计阅读时间差不多需要3个小时左右,所以要给大家说一说如何阅读此文档 为了方便大家阅读,我 ...
- mysqldump导出数据库
问题描述:要将一个mysql中六个数据库导出来,使用mysqldump导出 mysqldump使用语法:mysqldump -uroot -p -S /data/mysql/db_itax_m/mys ...
- Python 报错:NameError: name 'ctypes' is not defined
使用python中的ctypes模块可以很方便的调用windows的dll(也包括linux下的so等文件) 引入ctypes库 有两种方法 from ctypes import * import c ...
- mysql中的四种常用的引擎
MySQL常用的引擎有:InnoDB存储引擎.MyISAM存储引擎.MEMORY存储引擎.Archive存储引擎 InnoDB存储引擎 InnoDB是事务型数据库的首选引擎,支持事务安全表(ACID) ...
- DML_The OUTPUT Clause
DML_The OUTPUT Clause /**/ ------------------------------------------------------------------------- ...
- (二)groupId和artifactId
groupId一般分为多个段,这里我只说两段,第一段为域,第二段为公司名称. 域又分为org.com.cn等等许多,其中org为非营利组织,com为商业组织. 举个apache公司的tomcat项目例 ...
- ESP8266局域网智能家居 路由器下作服务器模式串口透传 无线通信控制 arduino uno示例 模板参考
准备工作 下载一个Arduino IDE, 下载8266的库文件 ESP8266服务器模式串口透传编译 功能说明 1.直接使用路由器中转数据 2.手机放热点模式直接传输数据 两者有访问IP地址的差别, ...
- 从新冠疫情出发,漫谈 Gossip 协议
众所周知周知,疫情仍然在全球各地肆虐.据最新数据统计,截至北京时间 2020-05-28,全球累计确诊 5698703 例,累计死亡 352282 例,累计治愈 2415237 例. 从上面的统计数据 ...
- 深入理解Java虚拟机学习笔记(一)-----Java内存区域
一 概述 对于 Java 程序员来说,在虚拟机自动内存管理机制下,不再需要像C/C++程序开发程序员这样为内一个 new 操作去写对应的 delete/free 操作,不容易出现内存泄漏和内存溢出问题 ...