Mac 使用 IDEA 2019.3 通过maven编译SpringBoot源码,进行源码调试学习

1、从GitHub拉取源码

SpringBoot项目地址:https://github.com/spring-projects/spring-boot

注意:
编译spring boot要求:maven 3.5或者以上版本,JDK 8或以上版本

点击Branch选择分支,这里我们选择最新的2.2.X,最后点击右侧clone or download。
这里下载可能有会有点慢,耐心等…

Mac 使用 IDEA 2019.3 通过maven编译SpringBoot源码,进行源码调试学习_第1张图片

2、修改pom.xml文件

解压后,修改项目根目录的pom.xml文件

在properties标签下添加:

true
它是用来配置,是否开启 Maven 代码检查的插件。
这里我们禁用检查。
Mac 使用 IDEA 2019.3 通过maven编译SpringBoot源码,进行源码调试学习_第2张图片

3、通过maven编译

解压后的工程目录下面有个执行文件: mvnw

通过SpringBoot github 下面的说明我们可以知道

编译源码有两种方式
Mac 使用 IDEA 2019.3 通过maven编译SpringBoot源码,进行源码调试学习_第3张图片
一种是通过是maven wrapper的 mvnw命令去编译
一种是通过标准的 maven命令 mvn 去编译 ,这种要求maven版本必须3.5.0或者以上版本

关于这两个有什么区别,什么是 maven wrapper?
你可以看下面文章详细了解:
参考来源:http://www.javacoder.cn/?p=759
Maven Wrapper项目的github地址:https://github.com/takari/maven-wrapper

这里我建议使用 maven去编译。你最好升级一下你的maven版本。

执行命令:

mvn clean install -DskipTests

这里需要注意:如果你的setting.xml 没有放到默认的路径下也就是:
/Users/你的用户名/.m2/setting.xml
那么执行上面这个命令的时候,maven就有可能找不到你本地仓库,就会从默认的中央仓库下载依赖,那会非常慢。
一般我们平时使用的setting.xml里面都会配置一些国内的镜像仓库,比如阿里云。也会配置本地的本地仓库。
所以这里执行mvn命令的时候,如果你的setting.xml 没有在默认路径下,你最好指定一下setting的路径

mvn clean install --settings /xxxx/xxx/settings.xml -DskipTests

DskipTests 主要作用是跳过了test打包

正常情况下,执行成功会出现下面截图的样子

然后到你本地仓库去找找看,有没有安装成功,出现一个 2.2.xxxBUILD-SNAPSHOT 的包

这里不是RELEASE版本啊,一定是 BUILD-SNAPSHOT 的编译快照版本。

这样才不会影响我们本地真实开发的时候引用的 Release版本

Mac 使用 IDEA 2019.3 通过maven编译SpringBoot源码,进行源码调试学习_第4张图片

4、导入IDEA

打开idea,选择 File–> New --> Project form Existing Sources…

选择你的工程目录 spring-boot-2.2.x

Mac 使用 IDEA 2019.3 通过maven编译SpringBoot源码,进行源码调试学习_第5张图片Mac 使用 IDEA 2019.3 通过maven编译SpringBoot源码,进行源码调试学习_第6张图片
Mac 使用 IDEA 2019.3 通过maven编译SpringBoot源码,进行源码调试学习_第7张图片

到这里,Spring Boot编译就完成

然后就可以新建一个module,进行调试学习了。

5、写个测试module


Mac 使用 IDEA 2019.3 通过maven编译SpringBoot源码,进行源码调试学习_第8张图片

Mac 使用 IDEA 2019.3 通过maven编译SpringBoot源码,进行源码调试学习_第9张图片
添加依赖
去掉生成的parent 这里不需要继承,我们直接引用需要的依赖模块




	4.0.0
	spring-boot-study
	org.springframework.boot
	${revision}
	
		2.2.6.BUILD-SNAPSHOT
	
	Spring Boot Study
	这里是用来学习研究spring boot 源码的工程
	
		
			org.springframework.boot
			spring-boot-starter-web
			${revision}
		
	

新建一个class 去测试一下
Mac 使用 IDEA 2019.3 通过maven编译SpringBoot源码,进行源码调试学习_第10张图片

6、想运行里面的smoke-tests模块

如果你想运行一下里面的冒烟测试模块 smoke-test还不行
你会发现里面的spring-boot-smoke-tests模块是没有被引用的,没有被标识出来。
Mac 使用 IDEA 2019.3 通过maven编译SpringBoot源码,进行源码调试学习_第11张图片
这是因为,这个模块没有被引用,打开spring-boot-tests 模块的 pom.xml 文件
可以看到 标签下面就没有对 smoke-tests模块进行引用,也没有对 deployment-tests 模块进行引用,注释的意思是说,deployment-tests 太慢了,默认情况下就没有引入。
Mac 使用 IDEA 2019.3 通过maven编译SpringBoot源码,进行源码调试学习_第12张图片
这里 我们把smoke-tests模块加入就可以了

spring-boot-smoke-tests

Mac 使用 IDEA 2019.3 通过maven编译SpringBoot源码,进行源码调试学习_第13张图片
完成以后 Reimport 一下maven项目
Mac 使用 IDEA 2019.3 通过maven编译SpringBoot源码,进行源码调试学习_第14张图片

接下来我们用spring-boot-smoke-test-web-ui模块测试一下

访问 localhost:8080 出现下面画面就表示成功了!
Mac 使用 IDEA 2019.3 通过maven编译SpringBoot源码,进行源码调试学习_第15张图片

以上是mac版本的编译过程,windows 的思路应该差不多,有需要都可以自己去尝试。

这里参考的文章来源:
1、https://blog.csdn.net/w605283073/article/details/85106902?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

2、Mvnw 简介

你可能感兴趣的:(SpringBoot,源码编译)