前言
對於一門技術,我們最先是了解它(what),然后再熟練的使用它(how)以及何時用它(when),最后肯定要看透它(why)。spring作為Java開發人員可以說是最熟悉不過的了,基本每個Java的項目都會用到spring,閱讀spring的源碼對於一個有理想的程序員來說也是一件必干不可的事,閱讀源碼我們才能更好的使用它、理解它,在遇到問題的時候我們才能更好的找到問題的原因並高效的解決。
閱讀源碼的最好方式就是下載下來然后導入到IDE,通過編寫Test代碼來Debug跟蹤。spring源碼導入到eclipse確實要花費一點功夫,容易出錯。在這里記錄一下。
環境准備
1.下載spring源碼
如果不知道spring在Github上的地址,我們可以借助搜索引擎,輸入 "spring github"關鍵字,一般第一個搜索結果就是。
點進去就跳轉到Github上的spring源碼了,可以點擊綠色的按鈕【Clone or download】下載到本地
spring的Github地址:https://github.com/spring-projects/spring-framework
2.安裝gradle
spring源碼是通過gradle構建的,所以我們需要安裝gradle,gradle下載: http://www.gradle.org/downloads ,下載后設置環境變量: GRADLE_HOME = gradle主目錄 (D:\mysoft\gradle\gradle-3.5), 並在path中加入;%GRADLE_HOME%\bin;
配置完成之后,在命令行窗口輸入 gradle -v,驗證是否安裝成功。
3.編譯
① 構建spring源碼
在spring源碼的目錄中有 import-into-eclipse.bat文件(Windows環境),我們可以直接點擊,也可以進入該目錄,通過命令行窗口來執行。
連續兩次回車,就可以開始自動構建;
這種方式一般容易失敗。我們通過另外一種方式:進入spring源碼目錄執行:gradle eclipse -x :eclipse,執行之后就是一大串的Download,構建時間根據網速來定,我們只需等待。
下載完后我們可以看到每個模塊下多了兩個文件:.classpath和.project。
② 通過eclipse的import導入Spring-framework源碼目錄
在Eclipse菜單File->import選擇General下面的Exsiting projects into workspace,這樣就導入完成了。導入源碼以后,項目會出現報錯的情況,缺少兩個jar包。
我們去網上找下這兩個jar包,根據提示我們在模塊下建立文件夾 build->libs,並將下載好的兩個jar包放入到libs文件夾里面,重新Clean一下項目。
③ 安裝eclipse的groovy插件
clean完之后發現項目還報錯(關於groovy的,所以eclipse需要集成groovy插件),
解決:eclipse菜單欄:help -- Install new software:地址輸入http://dist.springsource.org/snapshot/GRECLIPSE/e4.5/,下載完即可。
具體groovy版本和eclipse版本,參考:https://github.com/groovy/groovy-eclipse/wiki
④ 還有一個spring-oxm項目報錯
需要在spring-oxm項目路徑下輸入命令:gradle cleanIdea :spring-oxm:compileTestJava(其實不用也行,只是測試代碼報錯,但是強迫症的我們不允許),下載完后,刷新該項目即可。
⑤ Groovy compiler 不匹配問題
這是groovy插件的版本不匹配,解決方法參考:Groovy compiler mismatch problem
⑥ 最后效果
4.版本說明
eclipse:eclipse 4.5 (Mars)
spring源碼:
jdk:jdk 1.8
gradle:gradle 3.5
groovy eclipse plugin:e4.5