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

news/2024/5/20 1:53:53 标签: gradle, spring, java

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

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

1. 下载Spring源码

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

image-20220212113601308

image-20220212113814749

image-20220212113955015

gradle_18">2. 下载gradle并配置环境

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

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

image-20220212115948774

gradle下载地址

image-20220212120032422

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

image-20220212114428528

image-20220212114838628

image-20220212114851509

image-20220212114902716

image-20220212114957056

image-20220212115056264

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

win+R打开cmd

image-20220212115532716

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

image-20220212120354639

配置文件:

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:compileTestJavaspring 转成 IDEA 可以导入的工程结构。

构建成功:

image-20220212124211038

也有可能构建失败,报错像下面这样,是因为没有安装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的地址
image-20220212204015195

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

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

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

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

至此就可以进行愉快的Spring源码研究了💖


http://www.niftyadmin.cn/n/603561.html

相关文章

python中cls和self_深入浅析python 中的self和cls的区别

python 中的self和cls一句话描述:self是类(Class)实例化对象,cls就是类(或子类)本身,取决于调用的是那个类。staticmethod 属于静态方法装饰器,classmethod属于类方法装饰器。我们需要从声明和使用两个方面来理解。详细介绍一般来…

Spring @Import导入Bean的三种类型:Component、ImportSelector、ImportBeanDefinitionRegistrar

文章目录1.在Component标记的类下导入第三方的类2. 注入实现了ImportSelector接口的类3. 注入实现了ImportBeanDefinitionRegistrar接口的类我们通过Import注解的注释可以知道,我们可以在被Component标记的类下导入其他的类和实现ImportSelector、ImportBeanDefinit…

计算机公共应用基础知识,事业单位考试计算机基础知识:计算机的应用

【导语】在事业单位考试中,计算机专业知识的复习向来是考生复习备考阶段的一大重点,其中中公事业单位考试网为计算机基础知识的复习为考生提供知识点梳理,帮助考生备考!1.科学计算科学计算(或称为数值计算) 早期的计算机主要用于科学计算。科…

理顺 JavaScript (14) - constructor 与 instanceof

为什么80%的码农都做不了架构师?>>> 重看前面的例子: 明明是个函数, 怎么就成了对象? function MyObj(a, b) {this.x a;this.y b; }var obj new MyObj(11, 22); alert(obj.x); //11 alert(obj.y); //22alert(typeof obj); //object//一个…

计算机英语教学模式,计算机专业英语理实一体化课堂教学模式初探

思维的批判性是指思维活动中善意采用不同的方法去寻找解答问题的于严格地估计思维的材料和精细地检线索;在解决问题的过程中,善于从分查思维过程的能力。心理学家杨清指出析到综合、从综合到分析,全面灵活地个具有批判性思维的人,…

typescript中文手册_TypeScript 新版网站上线:带来了新的导航机制

作者 | Otra译者 | 王强策划 | 李俊辰8 月 4 日,微软正式宣布 TypeScript 网站的下一个迭代版本在 typescriptlang.org 上发布。这个新版网站的宗旨是让 TypeScript 的文档能像它的类型系统一样覆盖广泛,并在设计上符合微软的 modern 风格。新的 TypeScr…

Redis修改key的值(重命名key),附常用key命令

Redis修改key的值(重命名key),附常用key命令 命令:rename oldKey newKey 不会改变TTL的 常用key命令,在Redis中存储的key都是String类型,在Redis中key和value长度最大均为512M key操作: keys *…

莆田学院计算机与科学会换新字期,莆田学院2004-2005学年第一学期计算机科学与技术专业《计算机网络》课程期末考试卷(3份,有答案)...

内容简介:莆田学院2005-2006学年第一学期计算机科学与技术专业(本科班)《计算机网络》课程期末试卷(A)一、判断题(每题1分,共10分,请用“√”和“”分别表示正确或错误)1、数字传输在远距离传送的线路上不能通过安装放大器来解决传输过程中出…