Springboot 2.x源碼解析之源碼下載與搭建

前言

推薦大家去看Spring官方網站:https://spring.io,Spring家族都在這裏哦。

操作系統

MacOs Catalina 10.15.3

環境準備

  1. Java JDK 1.8 版本
  2. Maven 至少是v3.5版本以上,請勿使用v3.6版本,否則可能會出現不兼容的問題,點擊 下載 可以下載其他本,另需配置maven鏡像倉庫,選擇阿里雲的鏡像即可
  3. IntelliJ IDEA

源碼下載

源碼倉庫在:官方倉庫,可以看到springboot有1.x版本和2.x版本,目前我的當前版本是v2.1.0.M1版本,可以直接點擊下載:https://github.com/spring-projects/spring-boot/archive/v2.1.0.M1.zip,或者通過git clone命令將源碼下載至本地:# git clone https://github.com/spring-projects/spring-boot.git

編譯

下載解壓後,開始準備編譯前步驟,首先檢查環境是否準確,檢查步驟如下:

  1. 檢查Java環境:# java -version 出現版本號則正常,版本至少1.8。
  2. 檢查maven環境 # mvn -v 出現版本號則正常,檢查你的maven版本是不是至少v3.5版本,另附maven3各個版本的下載地址:http://archive.apache.org/dist/maven/maven-3/
  3. 檢查你的終端訪問磁盤權限是否已打開(注意我的是mac系統,如果你的不是此係統請忽略此步驟),進入設置-安全與隱私-隱私,如下圖:沒有勾上的請勾上,不然執行maven 命令會提示沒有訪問磁盤權限
    在這裏插入圖片描述

檢查通過後,打開終端進入源碼根目錄,執行以下命令,等待編譯完成:

# mvn clean install -DskipTests -Pfast

-DskipTests -Pfast 表示跳過測試用例

當出現下圖的情況就是編譯成功了:
在這裏插入圖片描述

源碼導入 IntelliJ IDEA

首先我們看一下源碼目錄:
在這裏插入圖片描述
其中spring-boot-project模塊就是核心代碼,而spring-boot-samples模塊就是官方提供的Demo,spring-boot-samples-invoker模塊你可以理解爲插件,它是用來構建spring-boot-samples模塊的,spring-boot-tests就是一些測試代碼。接下來我們以maven形式導入進IntelliJ IDEA,首先我們修改一下在源碼根目錄下的pom文件,在properties標籤里加上<disable.checks>true</disable.checks>,避免編譯報錯,如下圖:
在這裏插入圖片描述
然後我們打開spring-boot-samples-invoker模塊下的pom文件,在properties標籤里加上<skipTests>true</skipTests>,同樣避免編譯報錯,如下圖:
在這裏插入圖片描述打開Idea,選擇導入:
在這裏插入圖片描述
選擇源碼代碼根目錄
在這裏插入圖片描述
選擇maven
在這裏插入圖片描述
其他配置都是默認,等待導入完成!!!

導入完成後出現的問題

1、maven版本過高

如果你的maven版本是v3.6版本以上,建議換成v3.5版本,否則會出現不兼容的問題出現如下錯誤:
在這裏插入圖片描述報錯內容如下:
在這裏插入圖片描述如果你出現這種情況,建議降低版本,比如我的maven版本是v3.5.3,maven其他版本下載地址:http://archive.apache.org/dist/maven/maven-3/。下載完成後,重新配置一下maven環境變量切換到v3.5版本,在終端修改# vi ~/.bash_profile,將maven配置的路徑換成你下載的當前版本即可,修改完成後記得# source ~/.bash_profile , 輸入命令# mvn -v查看是否切換成功。除此之外,你還需要修改idea的maven依賴的環境版本,在idea打開Preferences > Build, Execution, Deployment > Build Tools > Maven,將maven home改成你當前的v3.5版本,如下圖:
在這裏插入圖片描述重新在源碼根目錄執行以下命令:

# mvn clean install -DskipTests -Pfast

又是一場漫長的等待。。。。

2、maven配置內存過低

編譯完成後,發現項目不能啓動,maven報紅,pom文件提示錯誤,pom.xml文件的project標籤上提示如下圖所示的效果:
在這裏插入圖片描述
具體內容是:

java.lang.OutOfMemoryError:GC overhead limit exceeded

該問題是IDEA裏爲Maven的importer設置的JVM最大堆內存(-Xmx)過小而導致的.
可以參考的解決方案:https://blog.csdn.net/w605283073/article/details/85107497

導入Demo

首先我們展開spring-boot-samples模塊可以看到,官方提供了很多Demo,但我們大部分是用不到的,我們只需要一個demo作爲解析源碼即可,於是打開spring-boot-samples的根目錄下pom文件,註釋掉modules標籤下的Demo只保留spring-boot-sample-simple即可,如下圖:
在這裏插入圖片描述然後在最外層根目錄下的pom文件裏的modules標籤下引入spring-boot-samples模塊,如下圖:
在這裏插入圖片描述等待編譯完成!!!

啓動測試

打開spring-boot-samples–>spring-boot-sample-simple–>SampleSimpleApplication.java文件,運行main函數,等待啓動成功,這樣我們整個搭建就算完成了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章