一、前言
既然要分析源码,那就直接下载源码来本地运行分析,是最有效的方案,但是在开始看这篇博客之前,希望小伙伴们有个心理准备...
源码编译是比较麻烦的一件事,我大概整了一天才基本整好源码环境,期间可能遇到各种奇奇怪怪的问题上网找答案,这里把流程记录一下,需要的小伙伴可以直接跟着步骤走,还是可以顺利编译通过的,亲测可行。
二、源码环境搭建
下载源码
下载地址:https://github.com/spring-projects/spring-boot/releases
设置maven国内镜像
由于直接使用Spring Boot默认的maven仓库相当慢且容易编译失败,这里我们新建一个setting.xml文件配置国内的镜像
setting.xml
<?xml version="1.0" encoding="UTF-8"?> <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> <pluginGroups></pluginGroups> <proxies></proxies> <servers></servers> <!--阿里云镜像--> <mirror> <id>nexus-aliyun</id> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror> <!--maven官方2号镜像--> <mirror> <id>repo2</id> <name>Mirror from Maven Repo2</name> <url>http://repo2.maven.org/maven2/</url> <mirrorOf>central</mirrorOf> </mirror> <!--maven的UK镜像--> <mirror> <id>ui</id> <name>Mirror from UK</name> <url>http://uk.maven.org/maven2/</url> <mirrorOf>central</mirrorOf> </mirror> <!--JBoss 镜像--> <mirror> <id>jboss-public-repository-group</id> <mirrorOf>central</mirrorOf> <name>JBoss Public Repository Group</name> <url>http://repository.jboss.org/nexus/content/groups/public</url> </mirror> </settings>
打开idea并完成编译
1、配置maven
2、删除可能影响编译的文件目录【不影响分析主流程的源码】
删掉spring-boot-2.2.9.RELEASE/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin下的java目录
删掉spring-boot-2.2.9.RELEASE/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/test下的java目录
3、配置pom.xml文件
4、使用Spring Java Format插件整理我们的工程
5、正式开始编译工程
三、新建web工程,用于对照分析源码环境