如何搭建自己的SpringBoot源码调试环境?--SpringBoot源码(一)
2020/2/23 17:02:45
本文主要是介绍如何搭建自己的SpringBoot源码调试环境?--SpringBoot源码(一),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1 前言
这是SpringBoot2.1源码分析专题的第一篇文章,主要讲如何来搭建我们的源码阅读调试环境。如果有经验的小伙伴们可以略过此篇文章。
2 环境安装要求
- IntelliJ IDEA
- JDK1.8
- Maven3.5以上
3 从github上将SpringBoot源码项目下载下来
首先提供SpringBoot2.1.0的github地址: github.com/spring-proj…
因为要进行阅读源码和分析源码项目,我们是不是要在里面写一些注释帮助我们阅读理解源码,因此需要将SpringBoot源码项目fork到自己的github仓库中,然后再利用git clone url命令将已经fork到自己github仓库的SpringBoot源码拉取下来即可。 但由于以上方式往往很慢,通常会超时,所以笔者直接将SpringBoot项目直接下载下来,然后再导入IDEA中。
4 将SpringBoot源码项目导入到IDEA中
将刚才下载的spring-boot2.1.0.RELEASE项目选择maven方式导入到IDEA中,然后一直next即可导入完成,注意选择JDK版本是1.8,maven版本是3.5+。
此时下载maven依赖是一个漫长的等待过程,建议maven没有配置阿里云仓库的小伙伴们配置一下,这样下载速度会快很多。参考配置maven使用阿里云仓库进行配置即可。5 编译构建SpringBoot源码项目
此时导入项目后,我们进行编译构建SpringBoot源码项目了,在构建之前做两个配置:
- 我们要禁用maven的代码检查,在根pom.xml中增加一下配置即可,如下图:
- 可能有的小伙伴们的pom.xml文件的project标签上显示
java.lang.OutOfMemoryError
错误,这是因为IDEA里的Maven的importer设置的JVM最大堆内存过小而导致的,如下图,此时可参考Maven依赖包导入错误(IntelliJ IDEA)解决即可。
进行了上面的两点配置后,此时我们就可以直接执行以下maven命令来编译构建源码项目了。
mvn clean install -DskipTests -Pfast 复制代码此时又是漫长的等待,我这里等待5分钟左右就显示构建成功了,如下图:
6 运行SpringBoot自带的sample
因为SpringBoot源码中的spring-boot-samples模块自带了很多DEMO样例,我们可以利用其中的一个sample来测试运行刚刚构建的springboot源码项目即可。但此时发现spring-boot-samples模块是灰色的,如下图:
这是因为spring-boot-samples模块没有被添加到根pom.xml中,此时将其添加到根pom.xml中即可,增加如下配置,如下图: 此时我们挑选spring-boot-samples模块下的spring-boot-sample-tomcat样例项目来测试好了,此时启动SampleTomcatApplication
的main
函数,启动成功界面如下:
然后我们再在浏览器发送一个HTTP请求,此时可以看到服务端成功返回响应,说明此时SpringBoot源码环境就已经构建成功了,接下来我们就可以进行调试了,如下图:
7 动手实践环节
前面已经成功构建了SpringBoot的源码阅读环境,小伙伴们记得自己动手搭建一套属于自己的SpringBoot源码调试环境哦,阅读源码动手调试很重要,嘿嘿。
下期预告: 我们该如何去分析SpringBoot源码涉及模块及结构?--SpringBoot源码(二)
原创不易,帮忙点个赞呗!
欢迎关注【源码笔记】公众号,一起学习交流。
这篇关于如何搭建自己的SpringBoot源码调试环境?--SpringBoot源码(一)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-27JavaScript面试真题详解与解答
- 2024-12-27掌握JavaScript大厂面试真题:新手入门指南
- 2024-12-27JavaScript 大厂面试真题详解与解析
- 2024-12-26网络攻防资料入门教程
- 2024-12-26SQL注入资料详解:入门必读教程
- 2024-12-26初学者指南:数据库服务漏洞项目实战
- 2024-12-26网络安全项目实战:新手入门指南
- 2024-12-26网络攻防项目实战入门教程
- 2024-12-26信息安全项目实战:从入门到初步应用
- 2024-12-26SQL注入项目实战:初学者指南