1. 去github上下載一個springframework的源碼包
地址;https://github.com/spring-projects/spring-framework
選擇5.0.x分支
2. 下載 gradle
http://downloads.gradle.org/distributions/gradle-4.9-bin.zip
解壓,配置 GRADLE_HOME 和 Path選擇5.0以下的版本
3. 用Idea打開項目 ,對Idea的gradle進行配置 不然會不兼容。
4.當項目構建完成之後,便可開始編譯。
先
gradlew :spring-oxm:compileTestJava
然後
gradlew :spring-core:compileTestJava
導入項目遇見問題:
1.No such property: immutableValues for class: org.gradle.api.internal.tasks.DefaultTaskDependency
修改:spring-beans.gradle
註釋掉這兩行代碼
//def deps = compileGroovy.taskDependencies.immutableValues + compileGroovy.taskDependencies.mutableValues
//compileGroovy.dependsOn = deps - 'compileJava'
2.Could not find method useJUnitPlatform()
註釋:spring-test.gradle中這行代碼
// useJUnitPlatform {
// includeEngines 'junit-jupiter'
// excludeTags 'failing-test-case'
// }
3.kotlin編譯導致的問題
org.gradle.api.CircularReferenceException: Circular dependency between the following tasks:
:spring-beans:compileGroovy
\--- :spring-beans:compileJava
\--- :spring-beans:compileKotlin
\--- :spring-beans:compileGroovy (*)
編譯github的最新spring源碼發現該問題,主要是kotlin版本不一致導致的
重點: 將問題1的註釋去掉
4.Aspects模塊代碼編譯出錯
https://jira.spring.io/browse/SPR-12103
https://youtrack.jetbrains.com/issue/IDEA-64446