1、源碼編譯的准備工作
gradle,jdk,idea等工具
2、spring5的源碼地址,github:https://github.com/spring-projects/spring-framework/tree/5.1.x,我是采用clone的方式,源碼克隆下來后導入gradle文件,項目會自動下載依賴,這里可以修改gradle的maven鏡像地址到阿里的鏡像:
maven { url "http://maven.aliyun.com/nexus/content/groups/public/"}
使用國內的地址能明顯提高依賴的下載速度
3、依賴加載完成后可以build工程:
這是因該會出問題包spring-core中的cglib包找不到的問題,解決辦法:執行這2個任務
完成后項目本身因該沒有問題了,這是可以執行測試代碼,我是自己添加了一個module來驗證,
添加了context和core的依賴,通過annotationconfigapplicationcontext來注入一個bean,這時可以能會出現jdk版本不兼容的問題,我原來使用的是jdk1.8-0-31的版本會出現不兼容問題,更換版本后解決了問題。
編譯過程中可能還會產生kotlin文件無法讀取到的問題,這時需要將這個工程以依賴的形式添加到另外一個工程中比如:spring-core-coroutines,這里需要注意的是要指定為main,不然無法生效的問題
目前只碰到這么多問題,
編譯獲取bean結果
至此源碼環境搭建完成!!