IDEA 導入Spring 源碼

本次導入 Spring 源碼的相關版本爲:

  1. Spring 5.X
  2. JDK 1.8.0_211
  3. IntelliJ IDEA 2018.1
  4. 項目中使用的是:Gradle 4.7  系統環境爲: Gradle 5.2

一、下載並安裝 Git 或者下載安裝 GitHub

  1. Git 下載地址:https://git-scm.com/downloads
  2. GitHub下載地址:https://desktop.github.com/

二、通過 Git 或 GitHub 下載源碼

  1. spring 的項目路徑爲:https://github.com/spring-projects/spring-framework
  2. 通過 Git clone Spring:git clone  [email protected]:spring-projects/spring-framework.git

三、下載安裝 Gradle

  1. Gradle的下載路徑爲:http://services.gradle.org/distributions/
  2. 查看 Gradle 是否安裝成功,命令爲:Gradle -version,如圖 1-1 中所示:
  3. 初始化 Gradle 。命令:Gradle init
圖:1-1

四、構建 spring-oxm

  1. 在Spring項目中有個說明文件 import-into-idea.md。打開說明文件,說明文件中有幾個步驟:
  • Precompile `spring-oxm` with `./gradlew :spring-oxm:compileTestJava`
  • Import into IntelliJ (File -> New -> Project from Existing Sources -> Navigate to directory -> Select build.gradle)
  • When prompted exclude the `spring-aspects` module (or after the import via File-> Project Structure -> Modules)
  • Code away
  1. 打開終端,切換至 Spring項目的目錄:spring-framework
  2. 執行:gradlew :spring-oxm:compileTestJava
  3. 打開 settings.gradle 將 include "spring-aspects" 註釋掉。

四、將 Spring 項目導入 IDEA 中

  1. File  —> New —>Project from Existing Source —>build.gradle。如圖 1-2 和 1-3 中所示: 
1-2

 

1-3

五、可能出現的問題

版本問題,JDK 需要使用 1.8 ,如果是1.7及以下,則無法完成編譯。

Gradle 的版本不清楚,建議使用的 Gradle 版本爲 5.2。

2-1

會出現如圖 2-1 中所示的報錯。需要修改 build.gradle 文件,

buildscript {
   repositories {
      maven { url "https://repo.spring.io/plugins-release" }
      // 這行是新增加的
      maven { url "https://plugins.gradle.org/m2/" }
   }
   dependencies {
      classpath("io.spring.gradle:propdeps-plugin:0.0.9.RELEASE")
      classpath("org.asciidoctor:asciidoctorj-pdf:1.5.0-alpha.16")
   }
}
// 3rd party plugin repositories can be configured in settings.gradle
plugins {
	id "io.spring.dependency-management" version "1.0.7.RELEASE" apply false
	id "org.jetbrains.kotlin.jvm" version "1.3.31" apply false
        // 從原來的 0.9.18 修改爲 0.9.15
	id "org.jetbrains.dokka" version "0.9.15"
	id "org.asciidoctor.convert" version "1.5.8"
}

 

configurations.all {
		// Check for updates every build
		resolutionStrategy.cacheChangingModulesFor 0, "seconds"

		// Consistent slf4j version (e.g. clashes between slf4j versions)
                // 這一段直接註釋掉
//		resolutionStrategy.eachDependency { DependencyResolveDetails details ->
//			if (details.requested.group == "org.slf4j") {
//				details.useVersion slf4jVersion
//			}
//		}
	}
repositories {
		maven { url "https://repo.spring.io/libs-release" }
		maven { url "https://repo.spring.io/snapshot" } // Reactor
		maven { url "https://oss.jfrog.org/artifactory/libs-snapshot" } // RSocket
                // 新增倉庫依賴 
                maven { url "https://plugins.gradle.org/m2/" }
		mavenLocal()
	}

在 IDEA 的 Settings 中將 Gradle 版本修改爲 4.7 版本。

注:網上的各類 Spring 項目導入的教程很多,按着一步一步做也有構建不成功的情況,上述操作中我也不知道爲什麼最終成功了。請各位讀者謹慎參考