code-learning/springboot/03-Spring Boot 源码分析-调试环境搭建(Spring Boot 2.2.0 版本).md

88 lines
3.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 精尽 Spring Boot 源码分析 —— 调试环境搭建Spring Boot 2.2.0 版本)
# 1. 依赖工具
- Maven
> 终于不用是 Spring 所使用的 Gradle 构建工具了。痛苦了一堆人。哈哈哈哈。
- Git
- JDK8+
> 艿艿自己使用的是 JDK11 。
- IntelliJ IDEA
- Kotlin
> 这个 IDEA 自带插件。有点记不清楚了。先无视,继续往下跑。如果碰到什么问题,星球给艿艿留言。
笔者目前使用的系统版本是 macOS Mojave 10.14 。所以,如果胖友是 Windows 环境,胖到一些问题,请在星球给我留言。
> 如果胖友真的搭建不起来,建议可以先新建一个项目,搭建一个 Spring Boot Demo 来调试。
>
> 😈 总之,我们的目的是,一定一定一定要调试。酱紫,才能更好的阅读 Spring Boot 的代码。
# 2. 源码拉取
从官方仓库 https://github.com/spring-projects/spring-boot `Fork` 出属于自己的仓库。
- 为什么要 `Fork` ?既然开始阅读、调试源码,我们可能会写一些注释,有了自己的仓库,可以进行自由的提交。😈
- 本文使用的 Spring 版本为 `2.2.0.BUILD-SNAPSHOT`
- 使用 `IntelliJ IDEA``Fork` 出来的仓库拉取代码。因为 Spring 项目比较大,从仓库中拉取代码的时间会比较长。
拉取完成后Maven 会开始自动 **Build** 项目。因为 Build 的过程中,会下载非常多的依赖,请耐心等待。
> 艿艿:这个时间,真的有点久啊。建议做两件事情:
>
> - 1、IDEA 的 Maven 使用自己本地装的 Maven 。
> - 2、Maven 记得使用阿里云的 Maven 仓库。
# 3. 直接运行
没错!正如标题所说,无需任何配置,就直接开始调试 Spring Boot 项目。开心不开心🙂 。我们来打开 `spring-boot-hibernate52-tests` 项目的 Hibernate52Application 类,直接右键 Debug 运行 `#main(String[] args)` 方法即可。
# 4. 拓展阅读
实际上,截止 [「3. 直接运行」](https://svip.iocoder.cn/Spring-Boot/build-debugging-environment/#) 小节,我们已经能够愉快的调试。但是,我们是一个热爱折腾的人,所以又做了点点事情。
## 4.1 解决 pom 的报错
在根目录的 `pom.xml` 中,会看到 `${disable.checks}` 报错。它是用来配置,是否开启 Maven 代码检查的插件。因为,我们目的是为了调试代码,所以自然是去禁用它。仅仅需要在 `pom.xml` 配置如下:
```
<properties>
<revision>2.2.0.BUILD-SNAPSHOT</revision>
<main.basedir>${basedir}</main.basedir>
<disable.checks>true</disable.checks> <!--我是被新增的-->
</properties>
```
## 4.2 搭建 Spring Boot MVC 调试环境
搭建一个 Spring Boot MVC 环境,想必胖友已经炉火纯青。所以呢,艿艿就不装比献丑了。
> 旁白君:不要脸,其实想偷懒。
如下是艿艿搭建的代码,胖友可以简单瞅瞅 [Spring Boot MVC 调试示例](https://github.com/YunaiV/spring-boot/blob/74690873857801615f1bf404c229a29986b96238/spring-boot-tests/spring-boot-yunai-tests/spring-boot-yunai-mvc-tests/pom.xml) 。
## 4.3 更多示例
`spring-boot-samples` 项目下,提供了大量的 Spring Boot 和各种框架集成的示例。默认情况下,根 `pom.xml` 并未包含它们。如果我们想将它引入,只需在 IDEA 里,将 Maven Profile 增加 `m2e` 选项即可。
但是,因为 `spring-boot-samples` 提供的示例实在实在太多,会导致我们的 Maven 报 GC overhead limit exceeded ,并且 Maven 解决依赖时间巨长。所以呢,我们可以在 `spring-boot-samples-invoker` 项目下,引入自己感兴趣的项目。例如:
```
<modules>
<module>../spring-boot-samples/spring-boot-sample-undertow</module>
</modules>
```
# 666. 彩蛋
笔者开始更新 Spring Boot 源码解析系列,让我们在 2019 一起**精尽** Spring Boot 。
啥也不唠了,撸起袖子。
以德服人,不服就干。