前置條件:
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:
第二次安裝碰到的兩個問題:
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變量,需要注意包括用戶變量和系統變量。