Spring Boot 2.0系列文章(四):Spring Boot 2.0 源码阅读环境搭建

night-photograph-2183637_1920

前提

前几天面试的时候,被问过 Spring Boot 的自动配置源码怎么实现的,没看过源码的我只能投降👦了。

这不,赶紧来补补了,所以才有了这篇文章的出现,Spring Boot 2. 0 源码阅读环境的搭建中还遇到点问题,被坑死了,还好解决了,感谢群里的小伙伴!

关注我

mark

转载请务必注明原创地址为:http://www.54tianzhisheng.cn/2018/04/15/springboot2_code/

项目下载

https://github.com/spring-projects/spring-boot/releases 可以看到所有版本的下载地址,我这里选择的是 Spring Boot 2 中最新的 v2.0.1.RELEASE 版本,下载后,然后解压。获取代码之前,请先确保你的 JDK 版本是 1.8 以上哦。

项目编译

进入 spring-boot-2.0.1.RELEASE 的目录下,执行下面的命令。

跳过测试用例编译

1
sudo mvn clean install -DskipTests -Pfast //跳过测试用例

跳过测试用例可以加快编译的速度。

先看下运行成功的效果:

springboot201

只花了 6 分多钟就好了。

全量编译

1
sudo mvn -f spring-boot-project -Pfull clean install

springboot2-error3

全量编译竟然报错,一波未平,一波又起!

2018-04-15_15-37-25

看网上的解决方法是:在项目的 pom.xml 文件中的 <properties> 添加 <javadocExecutable>

1
2
3
<properties>
<javadocExecutable>${java.home}/../bin/javadoc</javadocExecutable>
</properties>

此方法虽然管用,但是只是临时的,需要对每个项目都进行添加。

问题产生的原因应该是,mvn 拿到的 JAVA_HOME 位置应该是 ${JAVA_HOME}/jre 而不是 jdk 位置。

后面又看官方的 README 上面写的执行命令:

1
sudo mvn clean install

执行后也是有各种报错,尝试了很久解决,最后花了好几个小时才到下面这图:

springboot2-error4

太折腾人了,太麻烦了!

暂时就不全量编译了,我们就直接把现在 跳过测试用例编译 后的项目导入到 IDEA 中去。

导入项目工程

import

导入后将那些测试的 module 标记为 maven 项目,然后后面自己再根据测试用例去跟源码吧。

导入后项目没出现报错,美滋滋,后面源码可以看起来。

success02

遇到的坑

在这之前,我自己创建项目 Spring Boot 2 项目都是失败的,maven 运行项目(mvn clean install)报错如下:

springboot2-error2

springboot2-error

通过上图可以发现报错的罪魁祸首是由于找不到 org.yaml.snakeyaml 1.19 的包,这个依赖死活下不下来,苦逼了😢。

一开始以为是公司配的 maven setting.xml 文件有问题(公司私服有问题),导致我这个 org.yaml.snakeyaml 1.19 的包一直下载不来。后来我叫群里的好友帮忙测试下能不能创建 Spring Boot 2 项目,结果他们都行的。我就换成了他们阿里云镜像的 setting 文件,结果在我这还是不行的。真是醉了,我干脆直接叫他把 maven 本地仓库中的 org.yaml.snakeyaml 1.19 整个包都发给我,结果再次创建 Spring Boot 2 项目就能成功了。美滋滋😄!

springboot2-success

然后就蹭着现在环境 OK,开始搭建我的 Spring Boot 2 源码阅读环境!

相关文章

1、Spring Boot 2.0系列文章(一):Spring Boot 2.0 迁移指南

2、Spring Boot 2.0系列文章(二):Spring Boot 2.0 新特性详解

3、Spring Boot 2.0系列文章(三):Spring Boot 2.0 配置改变

4、Spring Boot 2.0系列文章(四):Spring Boot 2.0 源码阅读环境搭建

5、Spring Boot 2.0系列文章(五):Spring Boot 2.0 项目源码结构预览

6、Spring Boot 2.0系列文章(六):Spring boot 2.0 中 SpringBootApplication 注解详解

7、Spring Boot 2.0系列文章(七):SpringApplication 深入探索

最后

源码不骗人,多看看!

×

纯属好玩

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

文章目录
  1. 1. 前提
  2. 2. 关注我
  3. 3. 项目下载
  4. 4. 项目编译
    1. 4.1. 跳过测试用例编译
    2. 4.2. 全量编译
  5. 5. 导入项目工程
  6. 6. 遇到的坑
  7. 7. 相关文章
  8. 8. 最后
,