1旨枯、介紹
mac下閱讀spring
源碼,由于spring源碼是gradle構建扇谣,這里記錄一下源碼的構建方式。
基本信息:spring framework 5.2.0 + gradle 6.0.1 + jdk 1.8.0_191 + idea2018
2闲昭、過程
2.1罐寨、spring源碼下載
spring 源碼
存放在github上: https://github.com/spring-projects/spring-framework
選擇對應的版本分支版本下載或者release中找到對應的版本包下載解壓
image.png
2.2 Gradle 安裝
Mac下由于安裝過brew,安裝Gradle就很方便序矩。
參考:http://www.reibang.com/p/851c8a9ed202
2.3 idea 通過gradle構建springframework
源碼鸯绿。
File-->Open-->選擇文件。
image.png
這個過程很漫長簸淀,需要耐心等待瓶蝴。完成之后,模塊報上都有藍色點
image.png
自此租幕,我們可以通過idea點開spring源碼查看及搜索舷手,如下圖,接下來我們進行源碼編譯測試劲绪。
image.png
3. 源碼編譯測試
spring的import-into-idea.md 文件中寫著具體的編譯步驟:
image.png
3.1 先編譯spring-xom
右側面板gradle模塊下選擇 compileTestJava
執(zhí)行成功男窟,顯示如下:
省略.....
> Task :spring-context:compileTestGroovy
> Task :spring-context:processTestResources
> Task :spring-context:testClasses
> Task :spring-oxm:compileKotlin
> Task :spring-oxm:compileJava
> Task :spring-oxm:processResources
> Task :spring-oxm:classes
> Task :spring-oxm:genJaxb
[ant:javac] : warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
> Task :spring-oxm:compileTestKotlin
> Task :spring-oxm:compileTestJava
BUILD SUCCESSFUL in 4m 43s
61 actionable tasks: 61 executed
3.2 再編譯 spring-core
右側gradle面板下對應的build如下圖盆赤。
image.png
編譯成功,如下:
省略....
> Task :spring-core:compileTestKotlin UP-TO-DATE
> Task :spring-core:compileTestJava UP-TO-DATE
> Task :spring-core:processTestResources UP-TO-DATE
> Task :spring-core:testClasses UP-TO-DATE
> Task :spring-core:checkstyleTest
> Task :spring-core:test
> Task :spring-core:check
> Task :spring-core:build
BUILD SUCCESSFUL in 1m 8s
23 actionable tasks: 6 executed, 17 up-to-date
3.3 正式整體編譯spring
image.png
該過程耗時過長蝎宇,需要耐心等待