Spring下載
下載spring 命令:
git clone https://github.com/spring-projects/spring-framework.git
下載完成后:
Idea打開(kāi)源碼
當(dāng)前源碼下載完成后,是無(wú)法導(dǎo)入到Eclipse或Idea下的,但是下載包里已經(jīng)提供相應(yīng)的操作手段息楔。這里將源碼轉(zhuǎn)成Idea打開(kāi)的工程。
在import-into-idea.mdz中唯竹,可以看到
- Pre-compile
spring-oxm
with./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-aspects
module (Go to File->Project Structure->Modules) - Code away
首先,在命令行執(zhí)行命令:
E:\Workspaces\Spring\spring-framework>gradlew cleanIdea :spring-oxm:compileTestJava
出現(xiàn)問(wèn)題:
查詢(xún)可知苦丁,這個(gè)錯(cuò)誤是因?yàn)?MaxMetaspace 元空間是java8的新參數(shù)浸颓,如所以java8以下的版本,jvm是不支持這個(gè)參數(shù)的旺拉。
重裝jdk...or 刪掉gradlew中的配置信息
問(wèn)題導(dǎo)致gradle下載失敗产上,因此去單獨(dú)下載了一個(gè)gradle,
gradle-2.10-bin.zip蛾狗,然后放置在C:\Users\XXX.gradle\wrapper\dists\gradle-2.10-bin\baigpnfu14tdk6ztbfwcl8275路徑下晋涣,繼續(xù)執(zhí)行命令。
然后出現(xiàn)以下問(wèn)題:
大意就是告訴我們有個(gè)jar包下不下來(lái)沉桌。(目測(cè)網(wǎng)絡(luò)問(wèn)題)
因此谢鹊,修改gradle配置算吩。由于剛接觸gradle,雖然與maven類(lèi)似佃扼,修改了gradle的配置信息偎巢,參照
http://www.yrom.net/blog/2015/02/07/change-gradle-maven-repo-url/
同時(shí),由于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 } } }
替換為開(kāi)源中國(guó)的倉(cāng)庫(kù)压昼。最終,編譯成功瘤运。
導(dǎo)入項(xiàng)目
TIPS:
在導(dǎo)入后窍霞,發(fā)現(xiàn)有好幾個(gè)包無(wú)法識(shí)別依賴(lài),記得是:
import javax.inject.Provider;
這個(gè)依賴(lài)始終找不到尽超。最終官撼,經(jīng)過(guò)數(shù)次刪除,重新下載似谁,最后甚至取出了本地替換gradle的操作,采用原始的直接從
·maven { url "https://repo.spring.io/plugins-release" }·
下載掠哥,最終導(dǎo)入到工作空間后巩踏,可以正確識(shí)別導(dǎo)入包。
在進(jìn)行編譯測(cè)試時(shí)续搀,
DefaultListableBeanFactoryTests.testLazyInitialization()
方法塞琼,初始時(shí)會(huì)有問(wèn)題
發(fā)生以下錯(cuò)誤:
Error:(56, 61) java: -source 1.6 中不支持 diamond 運(yùn)算符 (請(qǐng)使用 -source 7 或更高版本以啟用 diamond 運(yùn)算符)
此時(shí),打開(kāi)build.gradle配置
然后禁舷,就可以愉快的通過(guò)測(cè)試了彪杉。