转载

一步一步构建Spring5源码

点击上方 "IT牧场" ,选择 "设为星标"

技术干货每日送达!

构建环境

  • 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. 源码导入

一步一步构建Spring5源码
源码导入
spring-oxm

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

一步一步构建Spring5源码
compileTestJava
  1. 修改 gradle/docs.gradle 脚本。一开始尝试直接构建Spring源码,在构建的过程中会报错,通过修改docs.gradle 脚本,注释 dokkaasciidoctor

一步一步构建Spring5源码
修改docs.gradle 脚本
  1. 源码构建。

一步一步构建Spring5源码
源码构建1

等了好长好长的时间,终于构建完成了。

一步一步构建Spring5源码
源码构建2
compile(project(":spring-context"))
一步一步构建Spring5源码
my module
  1. 运行main方法,发现报错

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

一步一步构建Spring5源码
报错

网上搜索了一大堆的解决方法,发现都不行。后来看了spring-context的依赖发现,spring-instrument 在 spring-context 中为 optional 依赖: optional(project(":spring-instrument")) ,于是在自己的模块中添加spring-instrument依赖

一步一步构建Spring5源码
添加依赖

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

ps:令我感到奇怪的是,当我在写这篇总结时,尝试通过移除spring-instrument依赖来复现上述的问题时,发现复现不了了,好神奇。

干货分享

最近将个人学习笔记整理成册,使用PDF分享。关注我,回复如下代码,即可获得百度盘地址,无套路领取!

001:《Java并发与高并发解决方案》学习笔记; 002:《深入JVM内核——原理、诊断与优化》学习笔记; 003:《Java面试宝典》 004:《Docker开源书》 005:《Kubernetes开源书》 006:《DDD速成(领域驱动设计速成)》 007: 全部 008: 加技术讨论群

近期热文

想知道更多?长按/扫码关注我吧↓↓↓ 一步一步构建Spring5源码 >>>技术讨论群<<< 喜欢就点个 "在看" 呗^_^

原文  http://mp.weixin.qq.com/s?__biz=MzI4ODQ3NjE2OA==&mid=2247485611&idx=2&sn=03dc71fec3d83d95688a200ec4c796aa
正文到此结束
Loading...