SpringBoot系列(3):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 2018.x

 2、Fork源碼

這裏,我們可以將Git上這個開源的SpringBoot源碼項目Fork到自己的Github倉庫裏。這樣,後期自己在上邊做筆記,或者各種的測試都可以直接提交到個人的倉庫上,隨意造作。看截圖紅框,(1)Fork源碼到本地倉庫;(2)源碼版本選擇。

  3、Clone源碼

將源碼的Git地址複製到IDEA中,這裏一定要確認已經安裝了Maven3.5.0以上的版本,低版本在編譯時,Maven插件會報錯。

  4、配置maven鏡像源

爲了加速下載所有的依賴 jar 包,我們先找到E:\maven\apache-maven-3.5.4\conf\setting.xml這個文件,然後在mirrors標籤裏粘貼如下內容。

<mirrors>
    <mirror>
        <id>nexus-aliyun</id>
        <mirrorOf>central</mirrorOf>
        <name>Nexus aliyun</name>
        <url> http://maven.aliyun.com/nexus/content/groups/public </url>
    </mirror>
</mirrors>

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

  5、修改spring-boot項目的pom.xml文件

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

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

<disable.checks>true</disable.checks>

 源碼的結構如下:

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

  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 編譯項目

先執行:

mvn -N io.takari:maven:wrapper

然後執行:

./mvnw clean install -DskipTests -Pfast

這裏,我們採用方式1的指令跳過測試部分進行編譯。第一次編譯,耗時15min左右,如果編譯成功,我們能夠看到如下打印信息:

注意:

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

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

  7、IDEA導入源碼及測試

源碼導入IDEA後,我們還需要測試一下,記得將IDEA的 Maven 版本選擇3.5.4,JDK選8以上的。這裏,並沒有使用maven默認的倉庫,所以勾選使用自定義安裝的maven配置文件和本地倉庫。

【1】選取項目裏的一個單元測試運行一下啓動程序。

這裏,在spring-boot-tests項目中,隨便選了spring-boot-launch-script-tests項目下的LaunchScriptTestApplication.java這個啓動類。點擊運行,看看啓動效果。

可以看到,已經啓動成功,說明我們的spring-boot源碼已經編譯成功。接下來,將創建一個demo項目測試一下。 

【2】創建一個子模塊demo項目,引入編譯的源碼進行測試。


願你就像早晨八九點鐘的太陽,活力十足,永遠年輕。

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