前期准备

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

最新文章

  1. PHP 获取图像信息 getimagesize 函数
  2. PHP memcached 扩展的安装
  3. Qt4升级到Qt5
  4. 使用JSON进行数据传输的总结
  5. MVC3 Razor模板引擎
  6. 实验四:使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用
  7. [转]解决get方法传递URL参数中文乱码问题
  8. 【Android进阶】Activity的四种加载模式
  9. C++实现中缀表达式转前、后缀
  10. AndroisStudio列选择模式
  11. Snackbar 提醒
  12. 字符串正则替换replace第二个参数是函数
  13. 【轻松前端之旅】HTML的块元素、行内元素和空元素
  14. 【代码审计】YUNUCMS_v1.0.6 前台反射型XSS跨站脚本漏洞分析
  15. 利用webpack手动构建vue工程
  16. ksort排序的依据是什么
  17. Windows 8.1 新控件和功能:
  18. Alphabet Cookies
  19. bzoj2262: 平行宇宙与虫洞
  20. Windows操作系统C盘占用空间过多

热门文章

  1. linux中c多线程同步方法
  2. Python 导入CSV、JSON、XML数据
  3. WinForm通用自动更新AutoUpdater项目实战
  4. centos7上安装redis以及PHP安装redis扩展(二)
  5. (一)HttpClient Get请求
  6. Java学习笔记5(API)
  7. 【解读】Http协议
  8. 黎活明8天快速掌握android视频教程--17_创建数据库与完成数据添删改查
  9. 重学 Java 设计模式:实战迭代器模式「模拟公司组织架构树结构关系,深度迭代遍历人员信息输出场景」
  10. Git的常用命令记录