Springboot 2.x源码解析之源码下载与搭建

前言

推荐大家去看Spring官方网站:https://spring.io,Spring家族都在这里哦。

操作系统

MacOs Catalina 10.15.3

环境准备

  1. Java JDK 1.8 版本
  2. Maven 至少是v3.5版本以上,请勿使用v3.6版本,否则可能会出现不兼容的问题,点击 下载 可以下载其他本,另需配置maven镜像仓库,选择阿里云的镜像即可
  3. IntelliJ IDEA

源码下载

源码仓库在:官方仓库,可以看到springboot有1.x版本和2.x版本,目前我的当前版本是v2.1.0.M1版本,可以直接点击下载:https://github.com/spring-projects/spring-boot/archive/v2.1.0.M1.zip,或者通过git clone命令将源码下载至本地:# git clone https://github.com/spring-projects/spring-boot.git

编译

下载解压后,开始准备编译前步骤,首先检查环境是否准确,检查步骤如下:

  1. 检查Java环境:# java -version 出现版本号则正常,版本至少1.8。
  2. 检查maven环境 # mvn -v 出现版本号则正常,检查你的maven版本是不是至少v3.5版本,另附maven3各个版本的下载地址:http://archive.apache.org/dist/maven/maven-3/
  3. 检查你的终端访问磁盘权限是否已打开(注意我的是mac系统,如果你的不是此系统请忽略此步骤),进入设置-安全与隐私-隐私,如下图:没有勾上的请勾上,不然执行maven 命令会提示没有访问磁盘权限
    在这里插入图片描述

检查通过后,打开终端进入源码根目录,执行以下命令,等待编译完成:

# mvn clean install -DskipTests -Pfast

-DskipTests -Pfast 表示跳过测试用例

当出现下图的情况就是编译成功了:
在这里插入图片描述

源码导入 IntelliJ IDEA

首先我们看一下源码目录:
在这里插入图片描述
其中spring-boot-project模块就是核心代码,而spring-boot-samples模块就是官方提供的Demo,spring-boot-samples-invoker模块你可以理解为插件,它是用来构建spring-boot-samples模块的,spring-boot-tests就是一些测试代码。接下来我们以maven形式导入进IntelliJ IDEA,首先我们修改一下在源码根目录下的pom文件,在properties标签里加上<disable.checks>true</disable.checks>,避免编译报错,如下图:
在这里插入图片描述
然后我们打开spring-boot-samples-invoker模块下的pom文件,在properties标签里加上<skipTests>true</skipTests>,同样避免编译报错,如下图:
在这里插入图片描述打开Idea,选择导入:
在这里插入图片描述
选择源码代码根目录
在这里插入图片描述
选择maven
在这里插入图片描述
其他配置都是默认,等待导入完成!!!

导入完成后出现的问题

1、maven版本过高

如果你的maven版本是v3.6版本以上,建议换成v3.5版本,否则会出现不兼容的问题出现如下错误:
在这里插入图片描述报错内容如下:
在这里插入图片描述如果你出现这种情况,建议降低版本,比如我的maven版本是v3.5.3,maven其他版本下载地址:http://archive.apache.org/dist/maven/maven-3/。下载完成后,重新配置一下maven环境变量切换到v3.5版本,在终端修改# vi ~/.bash_profile,将maven配置的路径换成你下载的当前版本即可,修改完成后记得# source ~/.bash_profile , 输入命令# mvn -v查看是否切换成功。除此之外,你还需要修改idea的maven依赖的环境版本,在idea打开Preferences > Build, Execution, Deployment > Build Tools > Maven,将maven home改成你当前的v3.5版本,如下图:
在这里插入图片描述重新在源码根目录执行以下命令:

# mvn clean install -DskipTests -Pfast

又是一场漫长的等待。。。。

2、maven配置内存过低

编译完成后,发现项目不能启动,maven报红,pom文件提示错误,pom.xml文件的project标签上提示如下图所示的效果:
在这里插入图片描述
具体内容是:

java.lang.OutOfMemoryError:GC overhead limit exceeded

该问题是IDEA里为Maven的importer设置的JVM最大堆内存(-Xmx)过小而导致的.
可以参考的解决方案:https://blog.csdn.net/w605283073/article/details/85107497

导入Demo

首先我们展开spring-boot-samples模块可以看到,官方提供了很多Demo,但我们大部分是用不到的,我们只需要一个demo作为解析源码即可,于是打开spring-boot-samples的根目录下pom文件,注释掉modules标签下的Demo只保留spring-boot-sample-simple即可,如下图:
在这里插入图片描述然后在最外层根目录下的pom文件里的modules标签下引入spring-boot-samples模块,如下图:
在这里插入图片描述等待编译完成!!!

启动测试

打开spring-boot-samples–>spring-boot-sample-simple–>SampleSimpleApplication.java文件,运行main函数,等待启动成功,这样我们整个搭建就算完成了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章