1 前言
這是SpringBoot2.1源碼分析專題的第一篇文章,主要講如何來搭建我們的源碼閱讀調試環境。如果有經驗的小伙伴們可以略過此篇文章。
2 環境安裝要求
- IntelliJ IDEA
- JDK1.8
- Maven3.5以上
3 從github上將SpringBoot源碼項目下載下來
首先提供SpringBoot2.1.0的github地址:
https://github.com/spring-projects/spring-boot/tree/v2.1.0.RELEASE
因為要進行閱讀源碼和分析源碼項目,我們是不是要在里面寫一些注釋幫助我們閱讀理解源碼,因此需要將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源碼(二)
原創不易,幫忙點個贊唄!
歡迎關注【源碼筆記】公眾號,一起學習交流。



