Spring下載
下載spring 命令:
git clone https://github.com/spring-projects/spring-framework.git
下載完成后:

Idea打開源碼
當(dāng)前源碼下載完成后,是無法導(dǎo)入到Eclipse或Idea下的,但是下載包里已經(jīng)提供相應(yīng)的操作手段。這里將源碼轉(zhuǎn)成Idea打開的工程。
在import-into-idea.mdz中,可以看到
- Pre-compile
spring-oxmwith./gradlew cleanIdea :spring-oxm:compileTestJava - Import into IDEA (File->import project->import from external model->Gradle)
- Set the Project JDK as appropriate (1.8+)
- Exclude the
spring-aspectsmodule (Go to File->Project Structure->Modules) - Code away
首先,在命令行執(zhí)行命令:
E:\Workspaces\Spring\spring-framework>gradlew cleanIdea :spring-oxm:compileTestJava
出現(xiàn)問題:

查詢可知,這個錯誤是因為 MaxMetaspace 元空間是java8的新參數(shù),如所以java8以下的版本,jvm是不支持這個參數(shù)的。
重裝jdk...or 刪掉gradlew中的配置信息

問題導(dǎo)致gradle下載失敗,因此去單獨下載了一個gradle,
gradle-2.10-bin.zip,然后放置在C:\Users\XXX.gradle\wrapper\dists\gradle-2.10-bin\baigpnfu14tdk6ztbfwcl8275路徑下,繼續(xù)執(zhí)行命令。
然后出現(xiàn)以下問題:

大意就是告訴我們有個jar包下不下來。(目測網(wǎng)絡(luò)問題)
因此,修改gradle配置。由于剛接觸gradle,雖然與maven類似,修改了gradle的配置信息,參照
http://www.yrom.net/blog/2015/02/07/change-gradle-maven-repo-url/
同時,由于spring下的build.gradle配置為
repositories { maven { url "https://repo.spring.io/plugins-release" } }
,在全局配置文件init.gradle中
allprojects{ repositories { def REPOSITORY_URL = 'http://maven.oschina.net/content/groups/public' all { ArtifactRepository repo -> if(repo instanceof MavenArtifactRepository){ def url = repo.url.toString() if (url.startsWith('https://repo1.maven.org/maven2') || url.startsWith('https://jcenter.bintray.com/') ||url.startsWith('https://repo.spring.io/plugins-release')) { project.logger.lifecycle "Repository ${repo.url} replaced by $REPOSITORY_URL." remove repo } } } maven { url REPOSITORY_URL } } }
替換為開源中國的倉庫。最終,編譯成功。

導(dǎo)入項目


TIPS:
在導(dǎo)入后,發(fā)現(xiàn)有好幾個包無法識別依賴,記得是:
import javax.inject.Provider;
這個依賴始終找不到。最終,經(jīng)過數(shù)次刪除,重新下載,最后甚至取出了本地替換gradle的操作,采用原始的直接從
·maven { url "https://repo.spring.io/plugins-release" }·
下載,最終導(dǎo)入到工作空間后,可以正確識別導(dǎo)入包。
在進(jìn)行編譯測試時,
DefaultListableBeanFactoryTests.testLazyInitialization()方法,初始時會有問題
發(fā)生以下錯誤:
Error:(56, 61) java: -source 1.6 中不支持 diamond 運算符 (請使用 -source 7 或更高版本以啟用 diamond 運算符)
此時,打開build.gradle配置

然后,就可以愉快的通過測試了。