Spring5源碼解析-前奏:本地構建Spring5源碼


構建環境

  • macOS 10.13.6
  • JDK1.8
  • IntelliJ IDEA 2018.3.6 (Ultimate Edition)
  • Spring v5.1.9.RELEASE
  • Gradle 5.5.1。直接使用brew安裝Gradle brew install gradle

源碼構建

1.源碼導入

源碼導入

2.閱讀Spring源碼下的 import-into-idea.md 文件可知

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

compileTestJava

3.修改 gradle/docs.gradle 腳本
一開始嘗試直接構建Spring源碼,在構建的過程中會報錯,通過修改docs.gradle 腳本,注釋 dokkaasciidoctor

修改docs.gradle 腳本

4.源碼構建

源碼構建1

等了好長好長的時間,終於構建完成了。

源碼構建2

5.在Spring項目中新增一個自己的module,嘗試運行hello world,引入spring-context 依賴 compile(project(":spring-context"))

my module

6.運行main方法,發現報錯

Error:(160, 32) java: 找不到符號 符號: 變量InstrumentationSavingAgent 位置:

報錯

網上搜索了一大堆的解決方法,發現都不行。后來看了spring-context的依賴發現,spring-instrument 在 spring-context 中為 optional 依賴(optional(project(":spring-instrument")) ),於是在自己的模塊中添加spring-instrument依賴

添加依賴

再次運行main方法,程序運行成功。

ps:令我感到奇怪的是,當我在寫這篇總結時,嘗試通過移除spring-instrument依賴來復現上述的問題時,發現復現不了了,好神奇。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM