Spring源码学习一,下载Spring源码并配置gradle环境

Spring是基于gradle开发,可以简单理解gradle是和Maven一样的Jar包管理工具

1. 下载Spring源码

我们先下载Spring源码,直接去Spring的GitHub主页下载:Spring主页,值得一提的是Spring的作者Rod Johnson是一位音乐学博士,看来写代码厉害的都是学音乐的😝

spring interceptor修改请求头 修改spring源码_git

spring interceptor修改请求头 修改spring源码_spring_02

spring interceptor修改请求头 修改spring源码_java_03

2. 下载gradle并配置环境

注意:解压完成后不要直接用 IDEA 打开,因为 Spring 的源码是用 gradle 构建的。如果已经用 IDEA 打开了请删除后重新解压

我们首先查看一下自己下的Spring源码对应的gradle版本,在spring-framework-5.0.x\gradle\wrapper 下的gradle-wrapper.properties文件,查看里边的 gradle 版本并下载相应版本

spring interceptor修改请求头 修改spring源码_maven_04

gradle下载地址

spring interceptor修改请求头 修改spring源码_maven_05

下载并解压(强烈建议所有环境依赖放在一个文件下便于管理),先在配置下环境,打开系统环境遍历

spring interceptor修改请求头 修改spring源码_maven_06

spring interceptor修改请求头 修改spring源码_git_07

spring interceptor修改请求头 修改spring源码_spring_08

spring interceptor修改请求头 修改spring源码_maven_09

spring interceptor修改请求头 修改spring源码_git_10

spring interceptor修改请求头 修改spring源码_maven_11

然后验证一下看环境是否配好了

win+R打开cmd

spring interceptor修改请求头 修改spring源码_maven_12

接下来我们需要在用户目录下新建一个init.gradle 文件,将国外源换成国内镜像(如果没有.gradle 这个目 录,需要自己新建一个)

spring interceptor修改请求头 修改spring源码_spring_13

配置文件:

allprojects{
	 repositories {
			def ALIYUN_REPOSITORY_URL = 'https://maven.aliyun.com/nexus/content/groups/public'
			def ALIYUN_JCENTER_URL = 'https://maven.aliyun.com/nexus/content/repositories/jcenter'
			all { ArtifactRepository repo ->
				if(repo instanceof MavenArtifactRepository){
					def url = repo.url.toString()
					if (url.startsWith('https://repo1.maven.org/maven2')) {
						project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_REPOSITORY_URL."
						remove repo
					}
					if (url.startsWith('https://jcenter.bintray.com/')) {
						project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_JCENTER_URL."
						remove repo
					}
				}
			}
		 maven {
			 url ALIYUN_REPOSITORY_URL
			 url ALIYUN_JCENTER_URL
		}
	 }
}

3. 在IDEA中打开Spring源码

首先我们要用cmd进入到Spring目录,然后用gradlew :spring-oxm:compileTestJava将spring 转成 IDEA 可以导入的工程结构。

构建成功:

spring interceptor修改请求头 修改spring源码_spring_14

也有可能构建失败,报错像下面这样,是因为没有安装git工具,或者没有初始化spring源码的目录,进入git bash here,敲入git init

Build scan background action failed.
org.gradle.process.internal.ExecException: Process 'command 'git'' finished with non-zero exit value 128

如果还是有报错可以不用管它,先打开idea导入Spring源码工程

检查一下自己gradle的地址,上面那个是jar包放的目录,会在此目录下生成一个cache的目录。下面那个就是gradle的地址

spring interceptor修改请求头 修改spring源码_spring_15

看下目录下的build.gradle文件,将下载的镜像源修改一下

将阿里云的镜像源放在前面:

spring interceptor修改请求头 修改spring源码_gradle_16

maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' }

然后点击右边插件区gradle图表的那个小象,下载一下依赖,漫长的等待后就会下载完毕

spring interceptor修改请求头 修改spring源码_java_17