gradle鏋勫缓spring cloud (gradle鏋勫缓springboot澶辫触)

最近想利用业余时间学习一下spring源码,阅读源码的第一步就是构建spring源码的阅读环境。由于spring 5.0.x是通过gradle构建的,由于平时主要还是使用maven构建项目,因此在构建过程还是遇到很多坑,百度也是千奇百怪,真是万事开头难,因此谨以此文记录一下构建过程。

环境

  • jdk1.8.0_121
  • idea 2019.3.3
  • gradle-4.4.1
  • spring-framework 5.0.x

构建spring-framework源码阅读环境

1、在GitHub上*载下**spring-framework

1)搜索spring-framework

gradle鏋勫缓spring婧愮爜,gradle鎼缓java椤圭洰

GitHub搜索spring-framework

2)选择*载下**5.0.x分支

gradle鏋勫缓spring婧愮爜,gradle鎼缓java椤圭洰

选择*载下**5.0.x分支

3)*载下**本地后解压

gradle鏋勫缓spring婧愮爜,gradle鎼缓java椤圭洰

本地解压spring-framework-5.0.x

4)关注解压后以下标注的几个文件

gradle鏋勫缓spring婧愮爜,gradle鎼缓java椤圭洰

5)在idea中构建spring,打开import-into-idea.md文件

gradle鏋勫缓spring婧愮爜,gradle鎼缓java椤圭洰

import-into-idea.md文档中已经详细说明了导入的步骤:

  1. 进入我们*载下**到本地并解压的spring-framework路径下,执行:

gradlew :spring-oxm:compileTestJava 命令

  1. 预编译spring-oxm模块
  2. 在编译之前文档中还说明让我们把spring-aspects模块先注释掉

gradle鏋勫缓spring婧愮爜,gradle鎼缓java椤圭洰

注释spring-aspects模块

6)用cmd窗口进入spring-framework路径下,执行

gradlew :spring-oxm:compileTestJava

gradle鏋勫缓spring婧愮爜,gradle鎼缓java椤圭洰

执行gradlew :spring-oxm:compileTestJava

首次执行时,会提示*载下**gradle-4.4.1-bin.zip文件,该文件是所*载下**spring源码包默认的gradle版,此时,按ctrl+C退出编译过程,去该网站*载下**指定版本gradle:

https://services.gradle.org/distributions/

2、安装gradle

1)本地解压

gradle鏋勫缓spring婧愮爜,gradle鎼缓java椤圭洰

2)配置环境变量GRADLE_HOME

gradle鏋勫缓spring婧愮爜,gradle鎼缓java椤圭洰

3)Path:%GRADLE_HOME%\bin

gradle鏋勫缓spring婧愮爜,gradle鎼缓java椤圭洰

4)检查是否配置成功

gradle -v

gradle鏋勫缓spring婧愮爜,gradle鎼缓java椤圭洰

3、预编译spring-oxm模块,执行命令

gradle :spring-oxm:compileTestJava

gradle鏋勫缓spring婧愮爜,gradle鎼缓java椤圭洰

注意:gradle 和 gradlew

gradle:本地*载下**安装配置好gradle,执行该命令

gradlew:根据spring源码指定gradle版本去*载下**gradle,执行该命令

因为我们是本地安装好了gradle,因此执行gradle命令。

4、IDEA构建spring源码项目

1)import Project

gradle鏋勫缓spring婧愮爜,gradle鎼缓java椤圭洰

选址spring源码项目

2)选择gradle,点击finish

gradle鏋勫缓spring婧愮爜,gradle鎼缓java椤圭洰

导入gradle项目

3)gradle配置

gradle鏋勫缓spring婧愮爜,gradle鎼缓java椤圭洰

配置gradle

4)修改maven仓库地址

由于我大天朝网关有限制,因此在idea编译过程中会出现*载下**不到jar包或者timeout等异常,因此修改maven地址如下

repositories {
		//Maven本地资源库
		mavenLocal()
		//阿里云仓库
		maven { url "http://maven.aliyun.com/nexus/content/groups/public/" }
		//spring仓库(默认)
		maven { url "https://repo.spring.io/plugins-release" }
		//Maven中央资源库
		mavenCentral()
	}

gradle鏋勫缓spring婧愮爜,gradle鎼缓java椤圭洰

修改maven仓库地址

5)配置完毕后,刷新gradle,把一切交给idea,静静等待即可

gradle鏋勫缓spring婧愮爜,gradle鎼缓java椤圭洰

刷新gradle

6)IDEA构建完成

gradle鏋勫缓spring婧愮爜,gradle鎼缓java椤圭洰

构建成功