购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.1 Spring Boot源码编译

本节将对Spring Boot源码编译的过程进行说明。从零开始搭建Spring Boot源码阅读环境,搭建阅读环境需要git、JDK8及以上版本(Java开发环境)、IDEA编辑器和Gradle 6.9及以上版本。

1.1.1 Spring Boot源码获取

关于Spring Boot源码获取需要在GitHub上找到Spring Boot项目仓库并将代码复制到本地,具体操作命令如下:

  git clone git@github.com:spring-projects/spring-boot.git

当执行上述命令时有可能会出现如下异常信息(下文异常信息截取部分):

  error:unable to create file spring-boot-project/spring-boot-test-autoconfigure/
src/test/java/org/springframework/boot/test/autoconfigure/jdbc/
JdbcTestWithAutoConfigureTestDatabaseReplaceAutoConfiguredWithoutOverrideIntegrationTests.
java:Filename too long

当出现上述异常信息时表示文件名称太长了,这个现象在Windows系统中比较常见,原因是git调用的是Windows系统提供的旧API长度限制是260,解决该问题只需要执行git config --global core.longpaths true代码。

当执行完成上述命令后就可以重新执行复制语句,将GitHub上的Spring Boot项目工程拉取到本地,拉取后在本地系统中会有如图1-1所示的内容。

图1-1 Spring Boot本地仓库

接下来需要在该文件夹下打开git bash命令行工具,在命令行工具中输入如下命令:

git branch sh-2.4.6 v2.4.6

上述命令表示创建一个分支,该分支的源头是v2.4.6。执行上述命令后需要执行git branch命令来确定是否创建成功。git branch执行后命令行会输出如下内容:

$ git branch
* main
  sh-2.4.6

从输出内容中可以发现,sh-2.4.6分支已经创建成功。接下来需要切换到该分支,具体切换命令如下:

git checkout sh-2.4.6

最后将这个分支推送到远程仓库,注意该远程仓库是个人远程仓库并非Spring Boot的官方仓库,具体推送命令如下:

$ git push origin sh-2.4.6
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
remote:
remote:Create a pull request for 'sh-2.4.6' on GitHub by visiting:
remote:     https://github.com/SourceHot/spring-boot/pull/new/sh-2.4.6
remote:
To github.com:SourceHot/spring-boot.git
 * [new branch]            sh-2.4.6 -> sh-2.4.6

1.1.2 Spring Boot源码导入IDEA

接下来将介绍如何将Spring Boot源码导入IDEA中,导入过程十分简单,只需要用IDEA将Spring Boot源码文件夹用IDEA打开即可。打开后界面显示内容如图1-2所示。

图1-2 Spring Boot导入IDEA

在打开Spring Boot源码文件夹后IDEA会自动下载Gradle工具,当下载Gradle工具后还会继续下载Spring Boot项目所需要的依赖,此处预计花费一个小时左右的时间。当完成后控制台会输出如下内容:

当看到上述信息后还需要等待十几分钟才可以完成IDEA的导入工作,导入后可以看到IDEA中的显示内容,如图1-3所示。

图1-3 Spring Boot工程明细

从图1-3中可以看到Spring Boot工程被分为了两大重要模块:

(1)spring-boot-project模块主要用于存储Spring Boot框架的核心代码;

(2)spring-boot-tests模块主要用于存储Spring Boot框架的测试代码。

在spring-boot-project模块中还根据不同的功能创建了多个模块工程,关于这些模块工程的说明如下:

(1)spring-boot:Spring Boot项目的核心。

(2)spring-boot-actuator:Spring Boot监控相关的内容。

(3)spring-boot-actuator-autoconfigure:Spring Boot监控中自动装配相关的内容。

(4)spring-boot-autoconfigure:Spring Boot自动装配相关的内容。

(5)spring-boot-cli:Spring Boot CLI命令行工具。

(6)spring-boot-dependencies:Spring Boot依赖工程。

(7)spring-boot-devtools:Spring Boot开发工具工程。

(8)spring-boot-docs:Spring Boot文档工程。

(9)spring-boot-parent:Spring Boot项目的父工程。

(10)spring-boot-properties-migrator:Spring Boot迁移工程。

(11)spring-boot-starters:Spring Boot启动工程。

(12)spring-boot-test:Spring Boot测试相关工程。

(13)spring-boot-test-autoconfigure:Spring Boot测试相关的自动装配工程。

(14)spring-boot-tools:Spring Boot工具工程。

在上述14个模块中,本书主要讨论分析的内容包括spring-boot、spring-boot-actuator、spring-boot-starters和spring-boot-autoconfigure。更多关于Spring Boot子模块的说明可以查看https://docs.spring.io/spring-boot/docs/current/reference/html/using.xhtml#using进行了解。 wr4hIWn/QyXtsBogmOLX6PvcFoDOupVV6tY3WJSnN2BDgCk+0DYRzRDGJ87ezHqh

点击中间区域
呼出菜单
上一章
目录
下一章
×