SpringFramework項目的源代碼能夠從github上下載到, 閱讀源碼以前,須要將構建項目的基礎環境搭建好,主要包括JDK、GIT、Gradle的安裝與配置。另外,在公司項目的開發中,咱們使用的開發工具一直是Eclipse,此次我嘗試使用IDEA來閱讀Spring項目的源碼,學習源碼的同時,順便也掌握IDEA的使用,筆記,這個開發工具是當下主流的開發平臺。java
說明:如下環境信息是在Windows環境中配置的。git
官方給出的版本是JDK 8 update 20 or later,我用的是1.8.0_131。github
用來下載源代碼使用,我本地安裝的是Git-2.13.0-64-bit.exe,安裝完畢後能夠直接使用Git bash,以命令的形式clone代碼。另外也能夠安裝TortoiseGit,經過圖形化界面來操做。spring
SpringFramework項目是基於Gradle構建的,咱們在本地想要經過IDE來閱讀源碼的話,必須經過Gradle進行構建。項目裏面提供了構建腳本,只有安裝了Gradle後才能夠運行。關於Gradle的安裝到官網下載,而後配置環境變量就能夠,與配置JDK的環境變量步驟相似,再也不贅述,配置完畢後,在cmd命令行中,用gradle -version來檢查版本,若是配置無誤,顯示信息以下:bash
在本地環境,經過Git bash將源代碼下載到本地,SpringFramework項目的github地址是https://github.com/spring-projects/spring-framework。oracle
能夠選擇所有構建或者單獨構建某一個模塊。eclipse
進入項目根目錄,點擊gradlew.bat或者【shift】+鼠標右鍵,彈出的菜單中,選擇【在此處打開命令窗口】,執行gradlew.bat build,進行所有構建,我試了一下,很是慢,另外,可能會中途出錯。所有構建時,源碼與測試模塊都要構建一遍,可使用gradlew.bat build -test 跳過每一個組件的單元測試模塊進行構建。我下載後直接用master分支構建的,因此,源碼的版本是5.2.0。構建完成後,每一個模塊下面,會生成源碼Jar包、編譯後的Jar包以及JavaDoc Html文檔。ide
進入項目根目錄,在命令行中執行gradlew.bat -a :spring-beans:test構建spring-beans模塊。工具
項目根目錄中,有對應的導入說明:單元測試
1. Precompile `spring-oxm` with `./gradlew :spring-oxm:compileTestJava` 2. Import into IntelliJ (File -> New -> Project from Existing Sources -> Navigate to directory -> Select build.gradle)
根據裏面說明的步驟導入就能夠,導入成功後,就能夠愉快地看源碼了。
最後,構建時出現的問題,org.springframework.http.codec.multipart.DefaultMultipartMessageReader.java的268行出現錯誤,編碼GBK的不可映射字符:
在網上搜瞭解決方案,說的最多的是,在build.gradle中設置Java文件的編譯編碼,可是我打開buid.gradle文件後發現,裏面已經有了! 我只要將出問題的這個類用EditPlus打開後將編碼集修改成ANSI,最後驗證問題解決。
經過此次構建過程,總結以下:
加油!