Spring5的源碼構建之旅

Spring5的源碼構建之旅

最近在看 spring源碼深度解析第二版,需要先構建 Spring 的源碼,於是開始自己的構建之旅,在公司構建是一帆風順,可是不知道爲什麼回家後,構建起來就是各種辛酸,查了很多資料,很多都不是很全面,所以自己寫一篇筆記方便大家和自己以後遇到相同問題有地可尋,二話不說,先來說說構建的事吧


環境準備

Gradle

反正我用的最新版應該是 3.0 之後的都沒問題,網上教程很多,也很簡單,就不贅述了

Jdk

1.8版本及以上,應該是標配了吧


下載源碼並導入IDEA

我是先到 Spring官網 頁面,然後點擊 SpringFramework 進入Spring 的主頁,然後點擊 github 的圖標進入源碼的地址,避免找錯,然後 fork 或者 clone 隨自己心意,然後使用 IDEA 導入 spring 項目,此時會,然後設置好 gradle 爲本地的版本,下載版本是 5.1.x


spring-core 模塊的報錯

Error:(20, 50) java: 程序包org.springframework.objenesis.instantiator不存在
Error:(21, 46) java: 程序包org.springframework.objenesis.strategy不存在
Error:(22, 46) java: 程序包org.springframework.objenesis.strategy不存在
...

這樣的報錯,原因貌似是因爲源碼打包的問題

解決辦法

用命令行到達 spring-core 文件夾下,然後執行下面兩個命令

gradle objenesisRepackJar
gradle cglibRepackJar

spring-aspect 模塊報錯

因爲其中有些類使用了 aspect 關鍵字,但是 javac 編譯器不能識別

解決辦法

安裝 AspectJ 工具

相關鏈接是 eclipse 的鏈接,下載網址,下載完成後需要安裝,下載超級慢,我在 CSDN 上傳一個,但是不能改金幣數量就很喫癟了,所以大家如果嫌慢可以留言什麼的。雙擊 jar 或者使用 java -jar aspectj-1.9.4.jar 安裝,傻瓜式安裝就不解釋了

配置 IDEA

首先在 Project Structure 中找到 Facets,然後添加 AspectJ 其中加入 spring-aop.main 和 spring-aspect.main,最後在 Setting 中設置 Java complier 中 use complier 選擇 Ajc,Path 要選擇 AspectJ\lib\aspectjtools.jar 並且勾選上 Delegate to Javac,這個選項的作用是讓只編譯 AspectJ 的 Facets 項目,而其他則使用 JDK 代理


spring-oxm 模塊報錯

應該是 spring-core 一樣的問題,看起來是很多

Error:(20, 50) java: 程序包org.springframework.oxm.jaxb.test.FlightType不存在
Error:(21, 46) java: 程序包org.springframework.oxm.jaxb.test.Flights不存在
Error:(22, 46) java: 程序包org.springframework.oxm.jaxb.test.ObjectFactory不存在
...

解決辦法

用命令行到達 spring-oxm 文件夾下,然後執行下面兩個命令

gradle genCastor
gradle genJaxb

總結

以上是我遇到的一些問題,可能是 IDEA 版本高,沒有碰到所說的 Kotlin 版本問題,如果遇到,可以更新 IDEA 的內嵌 Kotlin 的版本解決,希望對大家有幫助

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章