前置條件:
1. 正确安裝jdk,并配置好JAVA_HOME、PATH。(我這裡安裝的是jdk1.8)
2. 正确安裝好eclipse。(我的eclipse版本是: Neon Release (4.6.0))
步驟:
1. 首先去下載下傳spring的源碼
https://github.com/spring-projects/spring-framework/releases。 因為我的jdk版本是1.8,是以我這裡下載下傳的版本是4.3.2。
下載下傳完成之後解壓到本地目錄。
2. spring源碼的編譯需要gradle的支援,是以需要去gradle官網下載下傳gradle
https://gradle.org/gradle-download/。如果打不開可以到我的網盤下載下傳:
http://pan.baidu.com/s/1kVGu8yr下載下傳完成後同樣隻需要解壓到本地目錄,但是此時記得去配置環境變量 GRADLE_HOME和PATH。配置正确的話,在cmd輸入: gradle -v 能夠正确顯示gradle版本。
3. 進入spring源碼根目錄,打開指令視窗,輸入 import-into-eclipse.bat 運作腳本,這時候就開始編譯spring源碼并且生成可以導入eclipse的.classpath、.project檔案了。在運作的開始可能出現下載下傳類似:https://services.gradle.org/distributions/gradle-1.12-bin.zip 連接配接逾時,這個是網絡問題。可以多試幾次,也可以在指令行請求這個檔案的時候去浏覽器直接輸入這個路徑。
編譯的時間非常長。在編譯的過程中很有可能會出現錯誤,這時候需要根據具體的錯誤資訊自行百度解決。這裡說一個需要注意的地方就是:源碼跟路徑下的build.gradle檔案中一般有下面的話:
compileJava {
sourceCompatibility = 1.6
targetCompatibility = 1.6
}
compileTestJava {
sourceCompatibility = 1.8
targetCompatibility = 1.8
options.compilerArgs += "-parameters"
這個就是指定源碼編譯使用的是jdk1.6,而測試代碼編譯使用的是jdk1.8。也就是此時應該要安裝jdk1.8.
4. 一路回車編譯完成就可以在eclipse中導入了,導入的時候記得勾選eclipse中的列出下層的所有工程選項,否則導入的就是一個大的spring工程而不是各個工程分開。
5. 導入完成之後發現spring-beans-groovy工程中有錯誤,這是由于eclipse中沒有安裝groovy插件導緻的。直接: help--->install new software. 添加下面站點:
http://dist.springsource.org/snapshot/GRECLIPSE/e4.6/添加後選中required項進行安裝。 不同版本的eclipse安裝goorvy的站點清單參照:
https://github.com/groovy/groovy-eclipse/wiki。安裝完成之後重新開機eclipse即可,clean一下報錯的工程即可。如果還報錯,修改下groovy編譯的級别為2.3:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcuQGOlJmN0kjY2QjZhZTOjRDZ2AjNmNmY3MTYkZWY4YWNfdWbp9CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.png)
第二次安裝碰到的兩個問題:
1. Unrecognized VM option 'MaxMetaspaceSize=1024m'
原因: 該jvm參數在早期jdk1.8不支援
修改方式: 删掉源碼根路徑 build.gradle 和 gradlew.bat中的該配置項。
2. 編譯Spring core 的時候報 java.lang.reflect.Parameter找不到,且javac -version顯示還是老版本
原因:本地前面安裝了jdk1.6, 通過修改JAVA_HOME将路徑指向jdk1.8,java -version顯示1.8. javac -version顯示的還是1.6,實際編譯的時候運作的是jdk1.6,自然找不到對應的類。
修改方式: 1. 確定path中 %JAVA_HOME%\bin的配置在system32的配置前(索性将其移到第一位) 2. 確定隻配置了一個path變量,需要注意包括使用者變量和系統變量。
黎明前最黑暗,成功前最絕望!