javascript
Spring源码下载编译阅读
1.前言:
經(jīng)過(guò)多次拉取Spring源碼編譯失敗經(jīng)歷,一下抓取配置編譯過(guò)程各個(gè)軟件版本可能有影響因此先做以記錄(時(shí)間不同也會(huì)導(dǎo)致版本出入要注意)
Idea:2020.1.1(參考文獻(xiàn)博主2019.3.3版本也可)
插件:maven(3.6.3)(未用到)Gradle (4.10.3) Kotlin(idea內(nèi)裝)
JDK:原機(jī)安裝1.8版本 需要11版本(后續(xù)會(huì)說(shuō)明JDK1.8問(wèn)題)
注:流程可能較長(zhǎng),源碼拉取編譯不易,耐心閱讀
2.流程
2.1抓取Spring源碼
GITHUB網(wǎng)址:https://github.com/spring-projects/spring-framework
注意筆者:2020.12.9抓取版本 (v5.3.3-SNAPSHOT)版本可能會(huì)導(dǎo)致后期配置時(shí)的不適,同時(shí)碼云上也有Springframework版本 暫未以此測(cè)試過(guò)
2.2gradle下載及安裝
獲取gradle-4.10.3,地址為:https://services.gradle.org/distributions/
,這里我們只選擇安裝文件即可,下載完畢后解壓到相應(yīng)目錄即可(建議全英文目錄) 直接訪問(wèn)該網(wǎng)址下載可能較慢,可搭”梯子“
配置環(huán)境變量同java:
建立系統(tǒng)變量GRADLE_HOME 值為解壓目錄中bin文件夾的上一級(jí)目錄(bin在這個(gè)目錄下)
編輯PATH系統(tǒng)變量
配置完成以后win+r,輸入cmd進(jìn)入dos界面,鍵入命令gradle -v,查看版本信息確保配置無(wú)誤
此時(shí)可以打開(kāi)idea配置
File->Settings
安裝插件Gradle(該版本idea安裝插件都需要重啟)
File->Settings->Gradle 配置相關(guān)信息 Gradle user home 和剛剛環(huán)境變量配置路徑一致bin上級(jí)目錄
3.準(zhǔn)備編譯:
準(zhǔn)備創(chuàng)建項(xiàng)目
選擇拉取的項(xiàng)目路徑:
選擇導(dǎo)入模式
選擇在新窗口打開(kāi)編譯
此時(shí)需要確認(rèn)剛剛的Gradle配置是否無(wú)誤打開(kāi)File->Setttings ->Gradle 查看對(duì)比
此時(shí)可以看到項(xiàng)目開(kāi)始加載下載,畫(huà)圈處會(huì)有進(jìn)度條或者直接以彈窗形式 該步驟需要等待較長(zhǎng)時(shí)間
懷疑是因?yàn)镚radle沒(méi)有配置國(guó)內(nèi)鏡像(類(lèi)是maven) 這個(gè)大家可以查閱相關(guān)配置資料嘗試
筆者下載三小時(shí)左右完成
下載編譯完成右側(cè)gradle框如圖所示 控制臺(tái)也會(huì)有成功提示(截圖控制臺(tái)顯示是模擬的因?yàn)榘惭b好了)
需要談到一點(diǎn),網(wǎng)上教程此處直接下載編譯成功,筆者測(cè)試時(shí)有一次報(bào)錯(cuò),jar包下載錯(cuò)誤(懷疑是網(wǎng)絡(luò)不穩(wěn)定導(dǎo)致)如圖點(diǎn)擊reimport按鈕可以再次嘗試 完成
接下來(lái)可以在其中創(chuàng)建工程測(cè)試項(xiàng)目(注意此時(shí)源碼可以注釋修改 ,編譯運(yùn)行還可能有錯(cuò)因此還有記錄)
4創(chuàng)建項(xiàng)目測(cè)試
項(xiàng)目中右鍵新建項(xiàng)目
畫(huà)圈處是筆者后續(xù)編譯出錯(cuò)的一個(gè)原因 應(yīng)該是要JDK 11 否則spring-core包中有個(gè)java依賴找不到
這個(gè)時(shí)候需要修改build.gradle文件(類(lèi)似于maven關(guān)聯(lián)其他模塊否則不能使用項(xiàng)目下其他包類(lèi))
內(nèi)容如下
在默認(rèn)生成文件下添加了該行
刷新配置加載:
正常編寫(xiě)spring代碼運(yùn)行后如圖所示錯(cuò)誤:
5這里面有三個(gè)問(wèn)題:
1.
Error:(354, 51) java: 找不到符號(hào)
符號(hào): 變量 CoroutinesUtils
位置: 類(lèi) org.springframework.core.ReactiveAdapterRegistry.CoroutinesRegistrar
2.程序包jdk.jfr不存在
3.缺少 cglib 和 objenesis 包
Kotlin: warnings found and -Weeror specified
問(wèn)題1解決:
添加依賴包 該包項(xiàng)目中有 在源碼目錄項(xiàng)目spring-core/kotlin-coroutines/build/libs下
選擇
即可解決
問(wèn)題2解決:
更換idea的JDK為JDK11(注意這個(gè)可以官網(wǎng)下載安裝即可不需要配置到環(huán)境變量去使用那么麻煩)
本地有相關(guān)JDK11包即可
問(wèn)題3解決:
emmm這個(gè)應(yīng)該不算是問(wèn)題 只是自己沒(méi)有學(xué)過(guò)gradle 不太清楚運(yùn)行流程原理
右側(cè)Gradle中找到spring-core模塊的tasks/other下
找到:cglibRepackJar 和 objenesisRepackJar把雙擊加載即可
此時(shí)整個(gè)spring框架加載編譯完成可以自己編寫(xiě)代碼測(cè)試,開(kāi)啟閱讀源碼
總結(jié)
以上是生活随笔為你收集整理的Spring源码下载编译阅读的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 面向对象chapter1
- 下一篇: Spring实战(十三)Spring事务