Spring5.0原始碼學習系列之部署構建Spring原始碼(一)

2020-10-22 11:00:31

Spring5.0原始碼學習系列之部署構建Spring原始碼(一)

1、環境準備

  • JAR管理:gradle 4.9
  • 開發IDE:IntelliJ IDEA 2018.2.5
  • JDK:jdk1.8.0_31
  • Git Server:Git fro window 2.8.3
  • Git Client:SmartGit18.1.5(可選)

Spring框架的jar管理是通過gradle的,所以還是搭建一下gradle環境,Git是用來程式碼管理的

2、下載Gradle

去gradle官網下載:https://services.gradle.org/distributions/

在這裡插入圖片描述

ps : 建議下載4.x版本,6.7版本和SpringFramework5.0不相容,build時候會提示,暫時沒找到方法,所以我換成Gradle4.9版本

下載gradle之後,設定環境變數:新建GRADLE_HOME
在這裡插入圖片描述
Path路徑後面加上%GRADLE_HOME%\bin;
在這裡插入圖片描述
cmd:gradle -v驗證gradle是否安裝成功:
在這裡插入圖片描述

3、設定gradle倉庫

在%GRADLE_HOME%新建init.gradle檔案,加上設定:使用阿里的倉庫
在這裡插入圖片描述

allprojects{
    repositories {
        def REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public/'
        all { ArtifactRepository repo ->
            def url = repo.url.toString()
            if ((repo instanceof MavenArtifactRepository) && (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
        }
    }
}

新增系統變數GRADLE_USER_HOME指定倉庫位置,ps:名字要固定為GRADLE_USER_HOME
在這裡插入圖片描述

4、IDEA整合gradle

安裝Gradle外掛
在這裡插入圖片描述
安裝好外掛之後,新建一個gradle專案驗證
在這裡插入圖片描述
Setting設定好gradle,如圖:
在這裡插入圖片描述

5、下載Spring原始碼

github連結:https://github.com/spring-projects/spring-framework

安裝好Git環境之後,git clone Spring原始碼

git clone https://github.com/spring-projects/spring-framework.git -b 5.0.x

也可以使用使用者端軟體SmartGit下載Spring原始碼:
在這裡插入圖片描述

6、import to idea

下載好SpringFramework原始碼之後,在根目錄裡,找到import-into-idea.md,這是一份說明檔案:
在這裡插入圖片描述
用typora開啟說明檔案:檔案介紹了匯入idea的方法,我們按照官方檔案來操作
在這裡插入圖片描述

  1. Precompile spring-oxm with ./gradlew :spring-oxm:compileTestJava

意思是要用gradle編譯spring-oxm專案,注意:在window系統要用gradlew :spring-oxm:compileTestJava命令,不用加上./,這個是linux系統的命令

我試過,沒編譯成功,因為spring-oxm專案依賴於spring-bean工程,用官方的編譯太困難了,遇到好幾個問題,所以我就繞過,用idea的auto import自動編譯部署

  1. Import into IntelliJ (File -> New -> Project from Existing Sources -> Navigate to directory -> Select build.gradle)

步驟2是告訴我們要import專案,不過官方readme說明太簡單,所以本部落格進行比較詳細介紹:

ps:注意勾選auto-import,匯入專案時候就會自動import自動構建專案
在這裡插入圖片描述
.gradle路徑:
在這裡插入圖片描述

  1. When prompted exclude the spring-aspects module (or after the import via File-> Project Structure -> Modules)

這個意思是排除spring-aspects,所以開啟setting.gradle,註釋程式碼如圖:

在這裡插入圖片描述

  1. Code away

這個就是自己新建專案編碼,略過

編譯過程是比較麻煩的,有問題就要看紀錄檔,網上找找資料
在這裡插入圖片描述
可能遇到的問題:

No such property: values for class: org.gradle.api.internal.tasks.DefaultTaskDependency
Possible solutions: values

在這裡插入圖片描述

只能先註釋程式碼compileGroovy.dependsOn = compileGroovy.taskDependencies.values - "compileJava"

7、Known issues

在這裡插入圖片描述

9、使用阿里倉庫

國外的倉庫下載網速可能比較慢,所以要換下阿里的倉庫地址:

maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter'}

在這裡插入圖片描述

10、新建Module

選擇Spring-framework->New -> Module

在這裡插入圖片描述
是屬於spring模組的:
在這裡插入圖片描述
在這裡插入圖片描述

smileNicky·主頁內容推薦員 CSDN認證部落格專家 分散式 Java Spring
java程式設計師,軟體工程專業,專注於sql調優,SpringBoot,spring框架學習,個人郵箱[email protected],公眾號nickymp