88 lines
3.9 KiB
Markdown
88 lines
3.9 KiB
Markdown
# 精尽 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 。
|
||
|
||
啥也不唠了,撸起袖子。
|
||
|
||
以德服人,不服就干。 |