前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一步一步构建Spring5源码

一步一步构建Spring5源码

作者头像
用户1516716
发布2019-09-17 14:26:19
1.9K0
发布2019-09-17 14:26:19
举报
文章被收录于专栏:A周立SpringCloud

点击上方"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. 源码导入

源码导入

  1. 阅读Spring源码下的 import-into-idea.md 文件可知,需要预先编译spring-oxm模块:

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

compileTestJava

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

修改docs.gradle 脚本

  1. 源码构建。

源码构建1

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

源码构建2

  1. 在Spring项目中新增一个自己的module,尝试运行hello world,引入spring-context 依赖:compile(project(":spring-context"))

my module

  1. 运行main方法,发现报错

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

报错

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

添加依赖

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-09-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT牧场 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 构建环境
  • 源码构建
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档