背景
记笔记,为学习SpringBoot源码,从官方github下载源码,基于maven在idea导入源码工程
环境
本人 idea版本 2018.3.1
jdk版本 1.8+ 建议版本11
maven版本 3.5+
SpringBoot版本 2.2.9.RELEASE
实现
- 首先去github下载源码,https://github.com/spring-projects/spring-boot,然后点击tags进去找到相应的springboot版本进行下载,本人下载的版本为2.2.9.RELEASE
- 下载完成以后解压到指定工程开发环境目录,解压完成如下
- 然后进入命令行控制界面,本人win10系统,所以是 win+R 输入cmd回车,然后进入解压好的源码工程目录中,并输入 mvn clean install -DskipTests -Pfast 回车执行安装,出现如下BUILD SUCCESS代表成功,初次安装时间可能会比较长,网络正常情况需要15~20分钟
- 然后通过idea导入源码工程,选中pom.xml文件一直下一步,最后完成即可,初次构建项目可能会需要一定的时间
- 然后可能会出现如下找不到gradle的相关类的情况,但不影响springboot工程启动(暂不清楚为什么会这样)
测试
新建一个maven模块进行简单的springboot启动测试
1. 右键项目->New->Module
2. Spring Initializr->Next
3. 因为是测试不修改Group和Artifact,直接默认值,然后Next
4. 因为是web项目,选择Web->Spring Web,然后Next
5. 这里Content root和Module file location的路径需要在原有的基础上加\demo,然后finish完成
6. 然后一个比较关键的一步,因为因创建出来的springboot默认是官方最新的版本。为了保证与源码统一版本,所以手动去新建的项目下修改pom.xml文件中的version为2.2.9.RELEASE版本(不改也不会报错,但之后看源码比较方便,Ctrl+类可以直接跳到源码的java类中,而不是跳到jar依赖包中)
7. 新增一个controller类并增加一个接口
8. 找到DemoApplication类启动main方法
9. 如下启动成功后,在浏览器输入localhost:8080/test 请求接口成功 返回相应的数据
可能遇到的问题
1. Error:java: 服务配置文件不正确, 或构造处理程序对象
解决方法:大概率是编译不兼容导致,看看jdk版本是否一致,可以改一下试试
idea下配置的5个点
- File -> Settings -> Build,Execution,Deployment -> Java Compiler 下的 Project bytecode version
- File -> Settings -> Build,Execution,Deployment -> Maven -> Importing 下的 JDK for importer
- Project Structure -> Project -> 下的 Project SDK
- Project Structure -> Modules -> demo -> Sources 下的 Language level
- Project Structure -> Modules -> demo -> Dependencies 下的 Module SDK