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. 源碼導入

源碼導入

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

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

compileTestJava

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

修改docs.gradle 腳本

  1. 源碼構建

源碼構建1

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

源碼構建2

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

my module

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

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

報錯

網上搜索了一大堆的解決方法,發現都不行。後來看了spring-context的依賴發現,spring-instrument 在 spring-context 中爲 optional 依賴(optional(project(":spring-instrument")) ),因而在本身的模塊中添加spring-instrument依賴spring

添加依賴

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

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

相關文章
相關標籤/搜索