spring源碼編譯

環(huán)境配置

安裝JDK茴恰、idea并做好相對應(yīng)的配置岁经,JDK建議使用8或者11
本案例使用的JDK版本是:1.8.0_221

下載Spring源碼

1. 訪問spring官網(wǎng):https://spring.io/汁蝶,點(diǎn)擊Projects

2. 點(diǎn)擊Spring Framework着帽,進(jìn)入下面界面

3. 點(diǎn)擊github圖標(biāo)揣钦,在github上下載相關(guān)源碼(因?yàn)閟pring源碼托管到github上),之后進(jìn)入github的界面

4. 在Branch下面選擇Tags為v5.2.0.RELEASE(選擇RELEASE版本涨岁,RELEASE版本正式發(fā)布上線的拐袜,功能比較穩(wěn)定),選擇好版本之后梢薪,點(diǎn)擊Code按鈕蹬铺,最后選擇Download ZIP開始下載zip包。

5. 下載之后將ZIP包放到指定的路徑(路徑根據(jù)個人情況做修改秉撇,可自定義)

6. 解壓ZIP包
unzip spring-framework-5.2.0.RELEASE.zip

以上完成了源碼的下載和解壓


編譯Spring源碼

1. 查看github提供了相關(guān)編譯的文檔說明即如何從源碼中編譯出spring框架甜攀,在下載的第三步驟的頁面,向下拉琐馆,找到“Build from Source”赴邻,然后點(diǎn)擊“Build from Source”鏈接

2. 點(diǎn)擊進(jìn)去之后在“Before You Start ”中可以看到環(huán)境的要求,建議使用JDK8或者JDK11

在IDEA中進(jìn)行編譯啡捶,選擇“Import into your IDE”--->"IntelliJ IDEA"鏈接

安裝步驟

第一步:導(dǎo)入IDEA之前,預(yù)編譯spring-oxm板塊奸焙。進(jìn)入解壓之后的spring源碼目錄瞎暑。

打開build.gradle文件,修改一下gradle相關(guān)配置与帆,方便項(xiàng)目很快的下載相關(guān)依賴了赌。在首行即plugins上方,buildscript里面加入一下內(nèi)容(配置gradle的依賴)

repositories { ? ? ? ?

?? maven{ url 'https://maven.aliyun.com/nexus/content/groups/public/' } ? ? ? ?

?? maven{ url 'https://maven.aliyun.com/nexus/content/repositories/jcenter'} ? ?

}

在 resolutionStrategy的下方玄糟,configurations.all的上方加入(配置項(xiàng)目的依賴)

maven{ url 'https://maven.aliyun.com/nexus/content/groups/public/'}

maven{ url 'https://maven.aliyun.com/nexus/content/repositories/jcenter'}

回到spring官方文檔勿她,執(zhí)行./gradlew :spring-oxm:compileTestJava

第二步:將spring源碼的項(xiàng)目導(dǎo)入IDEA中

File -> New -> Project from Existing Sources -> Navigate to directory -> Select build.gradle

第三步:排除spring-aspects模塊,spring-aspects有自己的編譯器阵翎,會影響jvm的加載逢并,所以要移除

第四步:開始編碼,以上完成spring的編譯

以上完成了spring的編譯郭卫,如果有些依賴沒有下載下來砍聊,可以手動的添加相關(guān)的jar包,可以在Known issues查看已知的issues


常見問題

1. The IDE modules below were removed by the Gradle project reload:springdemo

創(chuàng)建modules之后出現(xiàn)一下的頁面贰军,點(diǎn)擊“open a dialog”

點(diǎn)擊“open a dialog”之后出現(xiàn)一下界面玻蝌,點(diǎn)擊ok按鈕

2. 在spring源碼里創(chuàng)建模塊,創(chuàng)建模塊目錄如下:

我的解決方案是:刪除該模塊,重新創(chuàng)建俯树,重新創(chuàng)建的時候只是修改了一下jdk版本(從jdk8換成了11)就可以了帘腹,猜測是創(chuàng)建模塊的jdk和spring源碼項(xiàng)目使用的版本不一致

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市许饿,隨后出現(xiàn)的幾起案子阳欲,更是在濱河造成了極大的恐慌,老刑警劉巖米辐,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件胸完,死亡現(xiàn)場離奇詭異,居然都是意外死亡翘贮,警方通過查閱死者的電腦和手機(jī)赊窥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來狸页,“玉大人锨能,你說我怎么就攤上這事∩衷牛” “怎么了址遇?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長斋竞。 經(jīng)常有香客問我倔约,道長,這世上最難降的妖魔是什么坝初? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任浸剩,我火速辦了婚禮,結(jié)果婚禮上鳄袍,老公的妹妹穿的比我還像新娘绢要。我一直安慰自己,他們只是感情好拗小,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布重罪。 她就那樣靜靜地躺著,像睡著了一般哀九。 火紅的嫁衣襯著肌膚如雪剿配。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天阅束,我揣著相機(jī)與錄音惨篱,去河邊找鬼。 笑死围俘,一個胖子當(dāng)著我的面吹牛砸讳,可吹牛的內(nèi)容都是我干的琢融。 我是一名探鬼主播,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼簿寂,長吁一口氣:“原來是場噩夢啊……” “哼漾抬!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起常遂,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤纳令,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后克胳,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體平绩,經(jīng)...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年漠另,在試婚紗的時候發(fā)現(xiàn)自己被綠了捏雌。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,094評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡笆搓,死狀恐怖性湿,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情满败,我是刑警寧澤肤频,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站算墨,受9級特大地震影響宵荒,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜净嘀,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一骇扇、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧面粮,春花似錦、人聲如沸继低。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽袁翁。三九已至柴底,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間粱胜,已是汗流浹背柄驻。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留焙压,地道東北人鸿脓。 一個月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓抑钟,卻偏偏與公主長得像,于是被迫代替她去往敵國和親野哭。 傳聞我的和親對象是個殘疾皇子在塔,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,828評論 2 345

推薦閱讀更多精彩內(nèi)容