暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

构建Spring源码踩坑总结

ITSK 2021-02-17
1691

越简单,越快乐!

越努力,越幸运!





最近阅读Spring源码是通过自己新建项目依赖Spring相关jar包方式,感觉有些不太方便,调试的时候不能给源码加注释,所以就想着将自己的module直接建在Spring源码框架中,这样就能便于对Spring源码进行扩展。
但是构建的过程不容乐观,踩了各种坑,花了大半天时间构建成功了,做了如下总结~~

01

运行环境

本文运行环境如下:

  • 系统:Windows 10

  • IDEA版本:IntelliJ IDEA 2020.1.4 x64

  • JDK版本:jdk-11.0.10(JDK 11)

  • Gradle版本:gradle-6.8.1

  • Spring源码版本:5.3.4-SNAPSHOT

02

构建步骤

1、下载源码

spring源码地址(github)
https://github.com/spring-projects/spring-framework

可以先导入到gitee仓库再下载,速度会很快,如下:

然后git clone到本地:

2、gradle安装

  • 可以在编译的时候自动下载;

  • 下载到本地,进行配置;本文采用这种方式:

①下载Spring源码配置的gradle版本

②进行系统环境变量配置

配置Gradle和Maven使用相同仓库:

③验证配置是否成功

3、导入idea编译

配置好gradle直接import即可,导入后gradle会自动编译,过程很漫长,耐心等就好了~~编译过程中踩了很多坑,在第3小节做了总结。

编译成功如下:

4、自定义测试module

构建成功后,在spring中可以建自己的测试module,然后配置对spring模块依赖即可。

  • gradle默认生成的配置文件是:build.gradle,但是spring settings.gradle配置如下:所以需要将build.gradle改成:study-spring-bean.gradle,否则加载不到。

rootProject.name = "spring"
rootProject.children.each {project ->
project.buildFileName = "${project.name}.gradle"
}


  • 在settings.gradle中新增自己新建的module:

//自定义module
include 'study-spring-bean'


03

踩坑总结

1、编译过程gradle下载依赖慢的问题:

①修改gradle下载源,默认是从中央仓库下载(国外),速度很慢,跟使用maven一样,我们一般会改为使用阿里镜像站。

  • 修改build.gradle:

  • 修改settings.gradle:

②配置idea使用本地安装的gradle:

2、新建的测试module依赖了spring的模块时依然导包不成功,可能的原因是:上述提到的没有修改默认的build.gradle配置文件名称,spring加载不到。

3、修改JDK版本为JDK 11,开始使用JDK 1.8运行时jfr包导入不成功:

import jdk.jfr.Category;
import jdk.jfr.Description;
import jdk.jfr.Event;
import jdk.jfr.Label;


spring源码中默认使用的是JDK1.8:

①修改project依赖的JDK版本:

②修改Java compilerJDK版本:

③修改gradle依赖的JDK版本:

④修改build.gradle配置文件:

4、运行新建的module时,控制台输出乱码:

①修改gradle-wrapper.properties配置:

②修改idea help下配置:

然后重启idea即可:


长按二维码关注我们

ITSK

博客|yajing8


我知道你在看

文章转载自ITSK,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论