手把手带你编译Spring框架源码,让你的学习事半功倍( 二 )


修改配置先别着急 , 在编译构建之前 , 教大家一绝招 。这也是我在编译过程中实践出来滴心得 。

手把手带你编译Spring框架源码,让你的学习事半功倍

文章插图
 
从本地下载gradle因为第一次运行就会去下载 gradle 到本地 , 然后通过 gradle 来编译 Spring 源码 。这个就很慢了 , 外网服务器下载 , 你懂得 , 有被墙的风险 , 并且本身也贼慢 。
那为什么开始编译构建就会自动下载 gradle 呢?从哪里下载?下载的版本是多少?
我们打开 Spring 源码的根目录:
手把手带你编译Spring框架源码,让你的学习事半功倍

文章插图
 
配置文件的地址就是源码根目录的二级目录下的 gradle-wrApper.properties 文件 。
打开文件包含下列内容:
distributionBase=GRADLE_USER_HOMEdistributionPath=wrapper/distsdistributionUrl=https://services.gradle.org/distributions/gradle-6.8.3-bin.zipzipStoreBase=GRADLE_USER_HOMEzipStorePath=wrapper/dists
  • distributionUrl:表示的就是 gradle 的下载地址 , 默认配置的是一个远程 URL 。
  • distributionBase:下载后存放的目录 , 默认就是用户目录下的 .gradle 目录;
  • zipStoreBase:解压后存放的目录
我在构建的过程中发现配置的下载地址下载非常慢 , 经常超时 , 甚至有时候被墙 。
所以我们倒不如先下载到本地 , 然后修改配置文件从本地获取 gradle , 这样一来编译构建就会快很多了 。
我们只需要修改 gradle 的下载地址就好了 , 其他的配置项建议保持不变 。
手把手带你编译Spring框架源码,让你的学习事半功倍

文章插图
 
上述配置的意思就是如果我们运行 gradlew 会自动去 file
:///Users/sevenluo/IdeaProjects/spring-simple/gradle-6.8.3-bin.zip 这个目录下载一个 gradle 到当前用户的 .gradlewrapperdists目录 ,然后解压到当前用户的 .gradlewrapperdists 目录 。
但是实际目录不是这个 , 这个命令还会自己生成一些目录 。下图是指北君电脑实际 gradle 的下载解压目录:
手把手带你编译Spring框架源码,让你的学习事半功倍

文章插图
 
我本地使用的是 gradle-6.8.3-bin.zip ,如果你本地网络没问题可以自行去官网下载 , 当然指北君也下载好了 , 最后也都会给大家 。
修改远程仓库改完上面的配置也先别着急运行编译 , 现在解决了下载 gradle 慢的问题 , 但是编译开始会使用 gradle 从远程仓库下载大量相关依赖的包 。
如果你采用默认配置 , 那么我可以负责任的告诉你 , 你绝对得等呀等呀等 , 等的黄花菜都凉了 。而且还有很大可能会失败!原因也是因为默认仓库是国外的服务器 , 速度真的是没谁了 , 想屎 , 不烦躁都不行 。
所以呀 , 这里我们要把远程仓库改为咱们国内的阿里云 , 这样就舒服多了 , 怎么改?
很简单 , 找到 Spring 源码根目录下的 build.gradle , 打开编辑添加阿里云的仓库 。
手把手带你编译Spring框架源码,让你的学习事半功倍

文章插图
 
maven { url 'https://maven.aliyun.com/repository/public' } // 阿里云maven { url 'https://maven.aliyun.com/repository/gradle-plugin' } // 插件那到这里 , 就可以运行了?
no!no!no! , hold on, hold on
手把手带你编译Spring框架源码,让你的学习事半功倍

文章插图
 
再打开 Spring 源码根目录下的 settings.gradle 文件 , 添加阿里云仓库 。
手把手带你编译Spring框架源码,让你的学习事半功倍

文章插图
 
maven { url 'https://maven.aliyun.com/repository/public' } //阿里云maven { url 'https://maven.aliyun.com/repository/gradle-plugin' } //插件至此万事具备只欠东风了 , 就等我们开始编译 。
当然上面这些配置优化是指北君在实践中自己总结出来的 , 如果你的网速够快你完全可以不用优化 , 直接运行下面的命令 。
开始编译构建我们编译构建 Spring 源码 , 一般都是要导入到 IDEA 里面进行测试或者阅读的 。Spring 对于如何导入也提供了文档 , 是不是很贴心 。当然也有导入 Eclipse 的文档 , 大家可以根据自己的需求来操作 。我这里是用 IDEA 的 , 你如果导入 Eclipse 操作也都是基本上一样的 。


推荐阅读