搭建spring源碼
通路GitHub官網(下載下傳源碼): https://github.com
搜尋spring:點選:spring-projects/spring-framework 分支選擇5.0.X 然後下載下傳zip壓縮包(spring源碼)
- 環境介紹 ,jdk:1.8,gradle:4.8.1, IDEA:2020.1(如果是idea2018 可能需要安裝插件,推薦2019以上版本);
- 解壓spring源碼,修改build.gradle檔案 添加阿裡雲鏡像(不然下載下傳jar需要很久-大概一小時)(可以跳過)
Spring源碼搭建5.0.X Spring源碼搭建5.0.X - 直接導入源碼(選擇源碼解壓的根目錄即可)
-
項目導入後spring-core工程裡會有編譯報錯(org.springframework.objenesis.SpringObjenesis這個類報錯)是因為缺少jar引起的
1)首先找到spring-beans.gradle檔案,将最後三行注釋
2)然後在項目根目錄下執行cmd:執行兩個指令:gradle objenesisRepackJar,gradle cglibRepackJar 注意:gradle安裝版本過高會報錯!
3)關閉項目重新打開項目即可(報錯解決)
-
第4步中,生成的jar包(spring-core)spring-cglib-repack-3.2.6.jar,spring-objenesis-repack-2.6.jar
将這兩個jar放在建立檔案夾libs中,然後修改spring-core.gradle ,在89行加入:compile fileTree(dir: ‘libs’,include: ‘*.jar’)
加入之後編譯就不需要執行第五步的兩個指令了,然後項目clean
此時項目雖然不報錯,但是編譯會報錯!
-
解決AspectJ編譯問題:
1、https://www.eclipse.org/aspectj/downloads.php 下載下傳aspectj jar包(選擇穩定版本,我選擇1.9.0版本)
2、在下載下傳後jar所在位置執行cmd視窗,然後執行java -jar aspectj-1.9.0.jar 進行aspectj安裝,安裝時先選擇jdk目錄,然後選擇aspectj的安裝目錄
3、idea設定Ajc編譯,File -> Project Structure -> Facets -> 增加AspectJ(spring-aop_main ,spring-aspects_main),同時删除
Kotlin,這兩個項目都要删,然後設定Gradle(扳手圖示) -> Build,Execution,Deployment -> Compiler -> Java Compiler
-> 使用Ajc 編譯,同時Path to Ajc compiler 選到AspectJ安裝目錄下aspectjtools.jar位置:D:\Java\AspectJ\lib\aspectjtools.jar,此位置根據自己安裝目錄而定
同時再勾選 Delegate to javac (這個必須勾選!!!)
4、spring-beans.gradle檔案,将最後三行注釋放開(注釋這個地方是為了下載下傳jar包,如果自己下載下傳好了第5步不需要),否則編譯報錯!
至此,項目重新編譯無問題