SpringBoot2.1.x原始碼環境搭建詳解

前言

筆者試著從GitHub上拉取SpringBoot原始碼。然鵝,在本地IDEA開啟後,爆各種編譯錯誤,各種問題。經過反覆操作,現在總結一下SpringBoot原始碼環境搭建的實踐,便於後期對於原始碼的學習。

Github上SpringBoot原始碼的開源地址:

https://github.com/spring-projects/spring-boot

1、環境準備

專案/工具 版本

SpringBoot 2。1。x

maven 3。5。4

JDK 1。8。0

IDEA 2019。3。1

2、Fork原始碼

這裡,我們可以將Git上這個開源的SpringBoot原始碼專案Fork到自己的Github倉庫裡。這樣,後期自己在上邊做筆記,或者各種的測試都可以直接提交到個人的倉庫上,隨意操作。

看截圖紅框,(1)Fork原始碼到本地倉庫;(2)原始碼版本選擇。

SpringBoot2.1.x原始碼環境搭建詳解

3、Clone原始碼

將原始碼的Git地址複製到IDEA中,這裡一定要確認已經安裝了Maven3。5。0以上的版本,低版本在編譯時,Maven外掛會報錯。

4、配置maven映象源

為了加速下載所有的依賴 jar 包,我們先找到E:\maven\apache-maven-3。5。4\conf\setting。xml這個檔案,然後在mirrors標籤裡貼上如下內容。

nexus-aliyun central Nexus aliyun http://maven。aliyun。com/nexus/content/groups/public

注意:配置完maven映象源目的是為了後邊下載jar包,有時候會下載失敗。

5、修改spring-boot專案的pom。xml檔案

這裡我們先將未編譯的原始碼放在IDEA中看一下,需要修改校驗屬性。注意,這裡先不要在maven的配置中點選clean/install原始碼,會報錯,所有的依賴包都是一片紅線。

OK,先在屬性標籤中加入如下內容:

true

原始碼的結構如下:

SpringBoot2.1.x原始碼環境搭建詳解

接下來,我們需要對拉下來的原始碼進行編譯。

6、編譯Spring-Boot原始碼

進入原始碼專案所在的根目錄,準備編譯。

注意:編譯執行的過程有一下幾種方式,本地所使用的Maven版本:apache-maven-3。5。4。

【方式1】使用mvn clean install 編譯專案(跳過測試部分的內容進行編譯)

mvn clean install -DskipTests -Pfast

【方式2】使用mvn clean install 編譯專案

mvn -Dmaven。test。skip=true clean install

引數說明:

-Dmaven。test。skip=true:表示執行上邊這條命令在打包過程中將會忽略testcase,因為原始碼編譯耗時非常漫長,中間也可能會爆一堆異常Error。

【方式3】使用 mvnwrapper 編譯專案

先執行

。/mvnw clean install -DskipTests -Pfast

SpringBoot2.1.x原始碼環境搭建詳解

注意:

【1】上邊的命令執行編譯2。1。x以下版本原始碼是成功的,但是去編譯2。2。x版本原始碼時一直編譯不過,暫時沒搞明白咋回事。

【2】配置完maven映象源後,使用上邊命令編譯,有時候會下載/編譯失敗。出現異常就暴力點,直接將本地倉庫刪乾淨,重新編譯即可。

7、IDEA匯入原始碼及測試

原始碼匯入IDEA後,我們還需要測試一下,記得將IDEA的 Maven 版本選擇3。5。4,JDK選8以上的。這裡,並沒有使用maven預設的倉庫,所以勾選使用自定義安裝的maven配置檔案和本地倉庫。

SpringBoot2.1.x原始碼環境搭建詳解

【1】選取專案裡的一個單元測試執行一下啟動程式。

這裡,在spring-boot-tests專案中,隨便選了spring-boot-launch-script-tests專案下的LaunchScriptTestApplication。java這個啟動類。點選執行,看看啟動效果。

SpringBoot2.1.x原始碼環境搭建詳解

可以看到,已經啟動成功,說明我們的spring-boot原始碼已經編譯成功。

————————————————

一入IT深似海,從此學習是常態,上面內容只是冰山一角。關注“

JohnnyHL

”,決戰秋名山,coding到天亮。更多的乾貨,敬請期待!!