前言:最近準(zhǔn)備分享Spring源碼相關(guān)醉鳖,看源碼的時(shí)候感覺打斷點(diǎn)會(huì)更清晰一些舆驶。所以首先整理關(guān)于Idea編譯Spring步驟及問題解決乱陡。希望大家通過本篇小文順利搭建編譯環(huán)境虽缕,與我一起踏上Spring源碼分析之旅溶弟!
一女淑、前期運(yùn)行環(huán)境與工具準(zhǔn)備
JDK版本:1.8.0_131 (JDK需要1.8以上)
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151. html
Gradel版本:4.4.1
https://gradle.org/releases/
配置教程:https://www.cnblogs.com/linkstar/p/7899191.html Spring源碼版本:v5.0.7.RELEASE
https://github.com/spring-projects/spring-framework/releases
IntelliJ IDEA版本:
IntelliJ IDEA 2019.1.3 或 2018.3.6(Ultimate Edition)下載地址:https://www.jetbrains.com/idea/download/
第一部分中JDK、gradel環(huán)境變量配置自行配置辜御,本文不作講解鸭你。
二、官網(wǎng)下載spring源碼
點(diǎn)擊上邊Spring源碼下載地址進(jìn)入到github下載頁(yè)面如圖:
?
點(diǎn)擊下載,然后解壓到你想解壓的目錄袱巨。大概長(zhǎng)這個(gè)樣子阁谆。
?
用紅圈圈住的重點(diǎn)關(guān)注一下:
build.gradle:放了一些依賴配置,有點(diǎn)像maven的pom文件
gradle.properties:存放當(dāng)前Spring的版本愉老,可以對(duì)比下看看是不是5.0.8版本
gradlew.bat:放的是項(xiàng)目的構(gòu)建腳本场绿,不過在本章用不上,本章是使用IDEA去構(gòu)建
import-into-idea.md:這個(gè)是Spring導(dǎo)入IDEA的說明文件嫉入,可以根據(jù)里面的步驟去導(dǎo)入
三焰盗、將項(xiàng)目導(dǎo)入到Idea中
打開idea,在WelCome頁(yè)面咒林,點(diǎn)擊open熬拒,選擇編譯好的Spring源碼根目錄,
?
?
在框架解壓目錄下執(zhí)行 ./gradlew :spring-oxm:compileTestJava 命令 編譯 spring-oxm 模塊
?
所有編輯完是這樣子的
?
然后構(gòu)建Spring項(xiàng)目
?
四映九、執(zhí)行spring-webmvc中單元測(cè)試
即使整個(gè)項(xiàng)目沒有error或者紅點(diǎn)梦湘,也不代表項(xiàng)目已經(jīng)成功構(gòu)建好了瞎颗,我們還需要執(zhí)行個(gè)單元測(cè)試試 下件甥,如果能順利執(zhí)行單元測(cè)試,那證明該項(xiàng)目已經(jīng)構(gòu)建成功哼拔,這里我用到的是DispatcherServletTests 這個(gè)類引有,直接運(yùn)行查看結(jié)果。
發(fā)現(xiàn)構(gòu)建成功沒報(bào)錯(cuò)倦逐,但運(yùn)行單元測(cè)試報(bào)如下異常提示類找不到 譬正,是因?yàn)?spring-context的引用的spring-instrument沒有被引用到
?
需要修改spring-context目錄下spring-context.gradle文件 和spring-context-support目錄下spring-context-support.gradle 如下圖:
?
?
再次運(yùn)行Test類,執(zhí)行成功檬姥,這樣就可以開啟Spring源碼分析旅程啦T摇!