1、Spring源码下载
i、直接下载压缩包【不推荐】
前往Spring源码页面,如下图,第一步点击Code按钮,第二步在弹出框中点击Download ZIP下载源码压缩包:
ii、通过GitHub Desktop下载【推荐】
博主亲测,通过第一种方法下载的源码,在编译的时候会遇到点小问题,因此推荐这种下载方式。
首先进入GitHub Desktop下载页面进行下载GitHub桌面版。
双击安装包后会直接进行自动安装,没有选择安装路径的过程,紧接着登录后弹出以下页面:
选择 Clone a repository from the Internet,在URL栏填入 https://github.com/spring-projects/spring-framework.git,在Local path栏选择源码在本地的地址,然后点击 Clone
通过这种方式下载的速度比上面直接下载压缩包的速度要快很多,不知道是不是我网速的问题。
等待下载完成后,在下图红框出点击切换Git分支,这里我选择了5.2.x版本的Spring
至此,Spring源码下载完毕,以下进入源码编译阶段。
2、Gradle的下载安装
i、下载Gradle
由于Spring是基于Gradle的项目,因此编译Spring源码需要用到Gradle。Spring源码在编译过程中会自动下载对应版本的Gradle,不过因为这样那样的网络问题,也许会很慢,我们可以先将它下载到本地,然后用本地的Gradle来进行编译。
首先打开Spring源码文件夹,在 spring-framework\gradle\wrapper 路径下找到文件 gradle-wrapper.properties,其内容如下:
其中 distributionUrl 的值就是对应Gradle的地址,将这个地址输入浏览器中进行下载【用迅雷下载更快】。
下载下来的是压缩包,要解压好。
ii、配置Gradle
① 配置环境变量
-
新建变量,变量名 GRADLE_HOME,值为Gradle解压目录
-
新建变量,变量名 GRADLE_USER_HOME,值为Gradle仓库,由于我之前安装过Maven,所以我这里将其设置成了Maven仓库的地址
-
添加变量,变量名 path,追加值 %GRADLE_HOME%\bin;
② 配置Gradle仓库源
在Gradle安装目录下的 init.d 文件夹下,新建一个 init.gradle 文件,里面填写以下配置。
allprojects {
repositories {
maven { url 'file:///C:/Java/maven_repository'}
mavenLocal()
maven { name "Alibaba" ; url "https://maven.aliyun.com/repository/public" }
maven { name "Bstek" ; url "http://nexus.bsdn.org/content/groups/public/" }
mavenCentral()
}
buildscript {
repositories {
maven { name "Alibaba" ; url 'https://maven.aliyun.com/repository/public' }
maven { name "Bstek" ; url 'http://nexus.bsdn.org/content/groups/public/' }
maven { name "M2" ; url 'https://plugins.gradle.org/m2/' }
}
}
}
3、Spring源码编译
i、在IDEA中打开Spring源码项目
在IDEA界面选择 File->New->Project from Existing Sources
或者直接Open也可以,在弹出的界面中选择源码根目录下的build.gradle文件,点击OK
ii、配置本地Gradle
打开源码项目后,IDEA会根据源码项目的Gradle配置下载 gradle-5.6.4-bin.zip 文件
这里我们选择 Cancel 取消下载,然后在IDEA右面栏目中的Gradle栏目点击配置按钮:
在弹出的配置页面里,修改三个地方,如图:
iii、编译
配置本地Gradle完成后,点击确认,IDEA就开始进行编译了,保持网络稳定,就可编译成功。
4、注意事项
由于我这边将Maven仓库配置成了Gradle仓库,而我的Maven仓库有以前写的Spring项目的jar包,所以很多包不需要重新下,所以一次就编译成功了,大家在编译的时候,如果老是因为网络问题jar包下不下来,也可以手动去网上下载,然后放到仓库里面去。