天天看點

Spring源碼搭建5.0.X

搭建spring源碼

通路GitHub官網(下載下傳源碼): https://github.com

搜尋spring:點選:spring-projects/spring-framework 分支選擇5.0.X 然後下載下傳zip壓縮包(spring源碼)

  1. 環境介紹 ,jdk:1.8,gradle:4.8.1, IDEA:2020.1(如果是idea2018 可能需要安裝插件,推薦2019以上版本);
  2. 解壓spring源碼,修改build.gradle檔案 添加阿裡雲鏡像(不然下載下傳jar需要很久-大概一小時)(可以跳過)
    Spring源碼搭建5.0.X
    Spring源碼搭建5.0.X
  3. 直接導入源碼(選擇源碼解壓的根目錄即可)
  4. 項目導入後spring-core工程裡會有編譯報錯(org.springframework.objenesis.SpringObjenesis這個類報錯)是因為缺少jar引起的

    1)首先找到spring-beans.gradle檔案,将最後三行注釋

    2)然後在項目根目錄下執行cmd:執行兩個指令:gradle objenesisRepackJar,gradle cglibRepackJar 注意:gradle安裝版本過高會報錯!

    3)關閉項目重新打開項目即可(報錯解決)

  5. 第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

    此時項目雖然不報錯,但是編譯會報錯!

  6. 解決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步不需要),否則編譯報錯!

至此,項目重新編譯無問題