1、下载Spring源码Spring是基于gradle开发,可以简单理解gradle是和Maven一样的Jar包管理工具
我们先下载Spring源码,直接去Spring的GitHub主页下载:Spring主页,值得一提的是Spring的作者Rod Johnson是一位音乐学博士,看来写代码厉害的都是学音乐的
2、下载gradle并配置环境注意:解压完成后不要直接用 IDEA 打开,因为 Spring 的源码是用 gradle 构建的。如果已经用 IDEA 打开了请删除后重新解压
我们首先查看一下自己下的Spring源码对应的gradle版本,在spring-framework-5.0.xgradlewrapper 下的gradle-wrapper.properties文件,查看里边的 gradle 版本并下载相应版本
gradle下载地址
下载并解压(强烈建议所有环境依赖放在一个文件下便于管理),先在配置下环境,打开系统环境遍历
然后验证一下看环境是否配好了
win+R打开cmd
接下来我们需要在用户目录下新建一个init.gradle 文件,将国外源换成国内镜像(如果没有.gradle 这个目 录,需要自己新建一个)
配置文件:
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 可以导入的工程结构。
构建成功:
也有可能构建失败,报错像下面这样,是因为没有安装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的地址
看下目录下的build.gradle文件,将下载的镜像源修改一下
将阿里云的镜像源放在前面:
maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' }
然后点击右边插件区gradle图表的那个小象,下载一下依赖,漫长的等待后就会下载完毕
至此就可以进行愉快的Spring源码研究了