Spring5源码编译附带源码下载

1,263 阅读4分钟

idea编译Spring5.2.x源码

踩了一天的坑,请大家必须用5.2.x的版本,因为高版本 5.3 对jdk有要求,jdk8已经不行了,需求13。而且5.2.x想编译成功得注意 gradle 的版本,如果版本跟源码的要求不一致,则会编译失败。后面会一一介绍。


文章目录


前言


提示:以下是本篇文章正文内容,下面案例可供参考

一、gradle下载准备

gradle下载地址:services.gradle.org/distributio… 建议下载带 all 的
在这里插入图片描述

我这里用的是gradle.5.6.4 对应spring5.2.x 的要求,看下面这个文件。
在这里插入图片描述
在这里插入图片描述
这里介绍下 distributionUrl : 一旦这个项目引入idea,idea会自动根据这个路径去下载gradle,则就是官方的默认配置,这里可以用本地路径替代

==distributionBase = GRADLE_USER_HOME gradle的安装路径 ==

二、gradle安装

1.gradle直接解压

在这里插入图片描述

== 此时有个 注意点,就是把下载的那个zip解压后直接放入到 gradle-5.6.4-all 文件夹中(为了后续引入方便,就是上面讲的distributionUrl 绝对路径引入)==

在这里插入图片描述

2.配置环境变量

在这里插入图片描述

== 新建GRADLE_HOME后,path中增加%GRADLE_HOME%/bin;即可==
在这里插入图片描述

cmd 查看 gradle 是否配置成功 输入 gradle-v 如下则代表成功
在这里插入图片描述

3. 配置国内镜像

进入 Gradl e安装目录,在 init.d 目录下新建 init.gradle 文件,并添加以下内容:

allprojects{
    repositories {
        def REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public/'
        all { ArtifactRepository repo ->
            def url = repo.url.toString()
            if ((repo instanceof MavenArtifactRepository) && (url.startsWith('https://repo1.maven.org/maven2') || url.startsWith('https://jcenter.bintray.com'))) {
                project.logger.lifecycle 'Repository ${repo.url} replaced by $REPOSITORY_URL .'
                remove repo
            }
        }
        maven {
            url REPOSITORY_URL
        }
    }
}

在这里插入图片描述

三,下载 spring 5.2.x源码 并解压,用idea open打开 ,打开前有个注意事项,大家先别急,先往下看。往下看,往下看。我说了三遍。

spring5.2.x 下载地址 :github.com/spring-proj… 直接下载 zip 本地解压就好

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

== 此时刚打开项目,idea会根据项目配置自动去下载 gradle相关配置,一旦看到下面窗口 点击 Cancel,然后 idea配置我们本地 gradle即可==
在这里插入图片描述
idea 点击settings配置
在这里插入图片描述

修改 Spring-Framework 目录下 gradle/wrapper/gradle-wrapper.properties 文件; 将distributionUrl 属性进行修改,将 distributionUrl 属性对应的网络地址 修改为本地的地址,最要也把gradle-6.7.1-bin.zip 先下载到本地,这一步不做,恶心的gradle 每次build 的时候都会去网络上下载一次,也是很慢,
在系统的环境变量上添加 GRADLE_USER_HOME 参数 和JAVA_HOME一样设置,这里没有设置gradle 下载的资源都会放在 c:\User\当前用户.gradle 目录下,C盘大的话可以不用设置

distributionUrl=file:///E:/gradle-5.6.4-all/gradle-5.6.4-all.zip(这个就是上面提到的下载后的zip也放到解压目录中,跟这个配置文件对应)

在这里插入图片描述

添加项目 gradle 镜像

在根目录当前build.gradle 搜索 repositories

在这里插入图片描述

搜索 repositories
添加如下

repositories {
			maven { url "https://maven.aliyun.com/nexus/content/groups/public" }
			maven { url "https://maven.aliyun.com/nexus/content/repositories/jcenter" }
			mavenCentral()
			maven { url "https://repo.spring.io/libs-spring-framework-build" }
			maven { url "https://repo.spring.io/milestone" }
			maven { url "https://repo.spring.io/plugins-release" }
		}

在这里插入图片描述
在buildSrc 目录下 build.gradle增加配置

maven { url "https://maven.aliyun.com/nexus/content/groups/public" }
maven { url "https://maven.aliyun.com/nexus/content/repositories/jcenter" }

在这里插入图片描述

配置 project sdk

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

更新下载仓库依赖

在这里插入图片描述
等待中,可以抽根烟喽。漫长的等待
**在这里插入图片描述**
我用了15分钟。。。。
在这里插入图片描述
等待idea建立索引
在这里插入图片描述

1 编译 spring-oxm 选择 complierTestjava

在这里插入图片描述
在这里插入图片描述
完成
在这里插入图片描述

2 编译 spring-core 选择 complierTestjava

在这里插入图片描述
完成
在这里插入图片描述

3 执行 根目录 build方法

在这里插入图片描述
编译完成
在这里插入图片描述

测试

1 新建moudle 选择 gradle

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.点击 finish 后,会自动帮忙我们创建模块

在这里插入图片描述

3. 修改 build.gradle文件 ,添加依赖,并重新import

在这里插入图片描述

//添加完要构建下,否则无法在代码中引入相关功能
    compile(project(":spring-context"))
    compile(project(":spring-beans"))
    compile(project(":spring-core"))
    compile(project(":spring-aop"))

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

写在最后

一切好不容易总算圆满完成,感谢大家的一键三连,转发收藏点赞。如有问题,请留言…

欢迎关注我的微信公众号【猿之村】来聊聊Java面试\

加我的微信进一步交流和学习
如果显示频繁,微信手动搜索【codeyuanzhicunup】添加即可
如有相关技术问题欢迎留言探讨,公众号主要用于技术分享,包括常见面试题剖析、以及源码解读、微服务框架、技术热点等。