Spring源碼閱讀 (一):源碼編譯

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

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