Spring5 源码阅读环境搭建

编译好的源码

准备阶段

最好准备一个科学上网的工具,因为编译的时候会下载很多依赖文件,有些可能是国外的。如果没有科学上网的花,可能会下载失败。只要有一个包下载失败都有可能导致整个工程构建失败。所以,能不能构建成功除了看功低,运气也占一部分😁 --------------------------------我是分割线--------------------------------------- 其实我本人也没有准备科学上网的工具。只是修改下依赖的源,改成阿里云的等等的,也能成功

    jdk版本:1.8及以上 gradle版本:6.4.1,因为Spring源码使用gradle构建的。 Spring源码版本:5.1.x.RELEASE 开发工具:IntelliJ IDEA 2020.2.3 系统:win10

1. 安装gradle工具

1.1 下载地址:https://gradle.org/releases/,找到6.4.1版本点击binary-only下载。【图上是4.9但是失败了,我又换成6.4.1了,IntelliJ IDEA 也由2018版换成2020.2.3版的了 】 1.2 解压压缩包

1.3 配置环境变量

1.3.1 配置GRADLE_HOME,变量值为gradle根目录

1.3.2 配置GRADLE_USER_HOME,变量值为自定义Gradle仓库目录或者Maven的仓库目录 1.3.3 给变量Path添加值,值为%GRADLE_HOME%in; 1.4 配置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/ }
        }
    }
}

repositories 中写的是获取 jar 包的顺序。先是本地的 Maven 仓库路径;接着的 mavenLocal() 是获取 Maven 本地仓库的路径,应该是和第一条一样,但是不冲突;第三条和第四条是从国内和国外的网络上仓库获取;最后的 mavenCentral() 是从Apache提供的中央仓库获取 jar 包。

1.5 打开新的cmd,查看是否搭建成功: gradle -v

2. 下载spring5.1源码

2.1 选择5.1.x版本下载,下载速度可能会稍微慢点。耐心等待即可😎 2.2 解压项目源码

3. 导入项目

选择Gradle

内存尽量调大一些,因为构建的时候比较吃内存,内存不够的话可能会报内存溢出的错误,导致构建失败

-XX:MaxPermSize=2048m -Xmx2048m -XX:MaxHeadSize=2048m

这时候是各种报错啊,网上说下载资源失败多试几次就好了,我试了无数次都不行,一度想放弃。。。。。。,最后各种修改总算是可以了,我把正确的配置记录一下吧。

  1. 改配置
  2. 改代码build.gradle 改完之后刷新等待下载就行了。

下图就代表编译成功了

4. 修改部分源码

因为Spring项目是在Linux系统打包的,所以在Windows系统搭建环境的时候需要修改部分源码。

4.1 注释掉部分代码,dokka、asciidoctorj、asciidoctor、asciidoctorPdf

5.编译spring-core和spring-oxm

编译spring-oxm,双击下图标红的地方 编译成功如下: 同上方法编译spring-core

6. 编译整个工程【耗时,需耐心等待】

双击build,然后等待编译完成。 用了将近42分钟才全部编译完毕

7. 测试

运行测试案例,全部通过

经验分享 程序员 微信小程序 职场和发展