IDEA 編譯 Spring5 源碼環境

最近學習spring-framework源碼,在配置源碼環境的過程中踩了不少坑,此處將配置過程記錄下來,以便以後再配置的時候可以節省點時間。
本機環境:jdk1.8.0_161, IDEA2019.3.1, Gradle5.6.2, spring-framework-5.1.x, windows10

Gradle 安裝

Spring-framework 使用 Gradle 環境構建,所以在編譯Spring源碼時需要安裝Gradle環境,GradleMaven的安裝方式類似,都是直接下載壓縮包 -> 解壓 -> 配置環境變量 即可。

  • 下載gradle壓縮包
    進入官網下載地址:https://gradle.org/releases/ 下載對應版本,此處我下載的是 5.6.2
  • 解壓壓縮包
    解壓到你自己的目錄下,我的目錄是 D:\work\softSave\gradle-5.6.2
  • 配置環境變量
  1. 配置 GRADLE_HOME = D:\work\softSave\gradle-5.6.2 (自己的解壓目錄);
  2. 在 PATH 中增加 %GRADLE_HOME%\bin
  3. 增加 GRADLE_USER_HOME 環境變量,指定自己的gradle下載的jar包放在什麼地方,此處我配置了 D:\work\file\gradle_repo
  4. 在命令行輸入 gradle -v, 如果出現如下信息則說明安裝配置成功
    在這裏插入圖片描述
  • 配置本地倉庫
    直接安裝的gradle在進行build的時候某些包等資源會由於網絡被牆的原因下載失敗,所以可以配置gradle的全局倉庫,我配置了阿里雲的倉庫:
    在 gradle 解壓目錄的 init.d 目錄下新建 init.gradle文件, 裏面添加如下內容即可
   allprojects{
   repositories {
       def REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public/'
       all { ArtifactRepository repo ->
           if(repo instanceof MavenArtifactRepository){
               def url = repo.url.toString()
               if (url.startsWith('https://repo1.maven.org/maven2') || url.startsWith('https://jcenter.bintray.com/')) {
                   project.logger.lifecycle "Repository ${repo.url} replaced by $REPOSITORY_URL."
                   remove repo
               }
           }
       }
       maven {
           url REPOSITORY_URL
       }
   }
}

下載 Spring-framework 源碼

spring的所有項目都位於github上面,spring-framework 的github鏈接 https://github.com/search?q=org%3Aspring-projects+spring&unscoped_q=spring

  • 打開鏈接,選擇如下的項目
    在這裏插入圖片描述
  • 選擇要下載的源碼版本,並下載或直接使用git clone 到本地
    在這裏插入圖片描述

編譯源碼

  • 將源碼導入到 IEDA 中,此時只能看代碼,不能通過IDEA 找到直接點擊進入對應的類中,是因爲源碼需要使用gradle 去構建
  • 構建源碼:
  1. spring-core 和 spring-aspect 兩個工程是其他模塊所依賴的,所以需要先構建這兩個工程
    a. 先進入到spring-aspect 目錄下,在命令行輸入 gradle build 命令構建,如圖, 如果出現 BUILD SUCCESSFUL 則說明構建成功;
    在這裏插入圖片描述
    b. 進入 spring-core 目錄,同樣進行a 的操作;
  2. 在spring-framework 目錄下找到 buildSrc 目錄,運行 build.gradle 文件即可編譯源碼。

注:源碼編譯過程中可能出現錯誤,如果是下載資源錯誤,則需要重新配置gradle的倉庫,如果是其他錯誤,則可以嘗試註釋掉相應的行,大部分是test類中的錯誤,用此方法可以解決,編譯通過後即可開森滴各種騷操作看源碼了。

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