IDEA导入Spring源码环境搭建(图文解析)

  • IDEA导入Spring源码环境搭建(图文解析)
  • 一、环境准备
  • 二、下载源码
  • 2.1 fork出一个自己的仓库
  • 2.2 复制git地址去idea下载
  • 2.3 配置Gradle
  • 2.4 设置gradle-wrapper.properties
  • 2.5 配置build.gradle文件
  • 2.6 然后往下继续寻找,找到如下代码段


IDEA导入Spring源码环境搭建(图文解析)

一、环境准备

  • jdk1.8
  • idea导入springcloud项目 idea导入spring包_idea导入springcloud项目

  • IDEA2021
    用来阅读和开发源码的
  • gradle工具
    3.1 下载地址https://services.gradle.org/distributions,选择最新版本:gradle-6.9.1-all.zip(all版本是带源码的)
    3.2 设置环境变量:
  • idea导入springcloud项目 idea导入spring包_java_02


  • idea导入springcloud项目 idea导入spring包_java_03

  • 完成后打开cmd,执行gradle -v
  • idea导入springcloud项目 idea导入spring包_idea导入springcloud项目_04

二、下载源码

从官方仓库 https://github.com/spring-projects/spring-framework Fork 出属于自己的仓库。

  • 为什么要 Fork ?既然开始阅读、调试源码,我们可能会写一些注释,有了自己的仓库,可以进行自由的提交。
  • 本文使用的 Spring 版本为 5.3.x的master分支代码 。

具体操作如下:

2.1 fork出一个自己的仓库

idea导入springcloud项目 idea导入spring包_spring_05

2.2 复制git地址去idea下载

idea导入springcloud项目 idea导入spring包_java_06


新建一个项目

idea导入springcloud项目 idea导入spring包_1024程序员节_07


选择fork出来的仓库

idea导入springcloud项目 idea导入spring包_spring_08


注:下载慢可以参考我之前的文章解决GitHub下载慢的方案

2.3 配置Gradle

打开项目之后,设置Gradle,Gradle user home这个目录这里我设置的刚安装的gradle目录。这个目录你就可以认为相当于是我们的本地的maven仓库,gradle编译项目所依赖的jar都会下载后放入这个目录中。jvm默认我这里就是jdk8,jdk至少就是jdk8。

idea导入springcloud项目 idea导入spring包_1024程序员节_09


idea导入springcloud项目 idea导入spring包_1024程序员节_10

2.4 设置gradle-wrapper.properties

打开gradle-wrapper.properties文件。因为gradle每次编译都会从官网下载指定版本,所以我们在它第一次下载完之后,将distributionUrl设置成本地文件,这样就不会每次编译都从官网下载了

idea导入springcloud项目 idea导入spring包_1024程序员节_11

distributionUrl=file:///d:/soft/gradle/gradle-6.9.1-all.zip

2.5 配置build.gradle文件

这个就相当于是maven的pom文件,在文件头部加上

idea导入springcloud项目 idea导入spring包_intellij idea_12

buildscript {
	repositories {
		maven { url "https://repo.spring.io/plugins-release" }
	}
}

2.6 然后往下继续寻找,找到如下代码段

修改仓库:

找不到哪个jar包就去阿里云仓库搜,然后把url前面一节拿过来放在repositories 里面

idea导入springcloud项目 idea导入spring包_1024程序员节_13

repositories {
	maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
	maven { url 'https://archiva-maven-storage-prod.oss-cn-beijing.aliyuncs.com/repository/spring-plugin/' }
	mavenCentral()
	mavenLocal()
}