使用idea和gradle編譯spring5源碼的方法步驟
寫在前面:spring 應該對于每個從事java開發的大兄弟們來說應該都不陌生的,作為一個從業兩年多的小開發仔,個人覺得,每天都在面對spring,確從來沒有編譯過spring源碼,有點不太合適。最近在研究spring源碼的時候,突然想起編譯一下spring源碼,網上應該也有很多大神編譯過spring源碼,在這里我把我再編譯過程的遇到的坑,來跟大家分享下。
版本工具:spring5.0.x,gradle4,9,jdk1.8_131,kotlin1.2.51,groovy2.4.15,IntelliJ IDEA 2018-2
詳細步驟及坑見下:
1,下載gradle,可以去官網下載,gradle版本需要4.2以上,小編這里選擇的是gradle4.9版本。
gradle下載地址:https://services.gradle.org/distributions/
gradle下載時候有三個包,gradle-src為gralde源碼,gradle-bin為安裝包,gradle-all為源碼加安裝包,我們這里只需下載安裝文件即可。
2,配置gradle
gradle下載后不需要安裝,解壓再本地磁盤后配置環境變量即可
1),配置gradle環境變量
新建GRADLE_HOME,path中增加%GRADLE_HOME%/bin;即可
配置完成以后win+r,輸入cmd進入dos界面,鍵入命令gradle -v,若如下圖正確輸出版本信息即可
2),配置gradle默認的本地倉庫,gradle和maven類似,工作時也需要一個本地倉庫,管理工程jar包,可做如下配置,新增GRADLE_USER_HOME,路徑配置成需要的本地倉庫路徑即可。
3,下載spring5源碼(這里我們直接從全球最大的同性交友平臺github上下載就可以了),進入github官網,直接搜索spring
這里可能有很多同志上傳的spring源碼,這里我們直接找官方版本
進去之后會看到一個master版本,我們,同時也包含很多spring的歷史分支版本,這里我們直接選擇5.0.x版本
我們直接下載zip到本地磁盤即可
源碼下載地址:https://github.com/spring-projects/spring-framework
4,講spring5源碼導入idea進行構建
編譯spring5源碼有很多方式,可以直接通過gradle命令編譯,不過這種編譯方式比較麻煩,出現錯誤也不太好排查,回頭可專門寫一個文介紹下使用gradle命令編譯spring源碼。
這里我們選擇直接通過代碼編輯工具來編譯spring5源碼,可以用eclipse或者idea等等,這里我個人推薦使用idea編譯。
1)將源碼導入idea,idea怎么導入工程就不一一細說了,沒使用過idea的大兄弟,可以惡補一下idea使用手冊:file-open選到對應項目即可(先將源碼解壓到idea工作空間中去)
2),導入前先注意下工程下的這幾個文件,為導入eclipse和idea前需要注意的地方
我們點開import-into-idea.md文件
注意幾點:
a,因為其他項目需要依賴spring-core和spring-oxm,所以我們導入后需要先編譯這兩個包
b,spring-aspects需要依賴三方jar(精通aop的應該知道spring-aop和aspectj的關系,在使用注解方式實現spring-aop的時候,需要導入aspectj的jar,有興趣的可以去查閱下官方文檔aop相關文檔),這里編譯可能會報錯,不影響我們編譯使用,我們先不處理
c,使用工具編譯時,可能會出現內存溢出情況,這里我們編譯時需要增加相關參數
-XX:MaxPermSize=2048m -Xmx2048m -XX:MaxHeapSize=2048m
3),以上工作完成之后,我們可以開始導入編輯編譯配置了,如下圖(需要注意的地方已在圖中標注)
注意-注意-注意:小編曾經猜過的坑,jdk版本,不能太高,我曾經使用jdk1.8_20和jdk1.8_191編譯,均會出現版本問題,我后來采用的是,jdk1.8_131版本,即可成功
4),編譯過程中會出現一些錯誤,常見如下
a),jdk版本錯誤(如前所說,換成對應版本即可)
b),出現如下錯誤,點擊open file,將框中內容注釋即可
如上做完后,等著build完了即可,全稱需要下載gradle倉庫jar包,需要時間比較長,拼機器性能和網速的時候到了,兄弟們加油。
5,當項目構建完成之后,便可開始編譯,編譯很簡單,直接在moudle中run test all即可
如果出現依賴報錯,如下執行命令,即可下載相應jar包
如下執行完了后,編譯moudle即可,如此依次編譯spring-oxm,spring-context,spring-bean即可
6,使用剛剛編譯的spring源碼構建spring項目,在工程目錄下,新建moudle,引入對應的依賴即可
項目構建完成,正確輸出。至此,spring5.0.x項目構建編譯完成。大功告成!
到此這篇關于詳解使用idea和gradle編譯spring5源碼的文章就介紹到這了,更多相關idea和gradle編譯spring5內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!
相關文章:
