内容简介:一起来准备阅读下载源码到本地不建议下载
一起来准备阅读 Spring 源码
代码环境准备
-
JDK 8
-
Gradle
-
编译工具(常用 IDEA)
下载源码到本地
$ git clone git@github.com:spring-projects/spring-framework.git
不建议下载 master 分支的代码,因为有些小问题一直在修复,所以我下载的是 v2.3.0.M2 版本的 releases 代码。
因为我也是一边看书,一边做笔记,下载了源码,写的 demo 代码和注释都在里面,小伙伴们可以下载我上传的代码,亲测可运行~
设置 Gradle 路径
有两种选择:
-
选择 IDEA 工具中默认(Recommend)
-
选择用户自己下载的 Gradle (我本地通过 brew 下载)
最后设定:
下载依赖和编译
导入项目后,识别到 Gradle 依赖后,首先会从中央库下载相关的依赖。
下载完依赖后,进行代码编译,通过图形界面,选择根路径下的 build 任务。
最后编译生成 class 等文件路径,在各自模块的 build 目录。
Spring 源码分析大致流程
-
介绍概念
-
查看类的集成体系
-
简单 demo
-
查看源码
-
分析流程
遇到的坑
无法识别 Gradle 项目
这个问题是通过 version controll 克隆代码后,打开新项目时一直提示
Could not resolve symbol "XXX" # 还有右上角弹出的 Try resolve again
一开始不知道是哪个导入流程错误,通过查询资料,发现将代码 clone 到本地后,通过下面步骤操作,项目就能正常识别和下载依赖了:
-
点击
IDEA的 ` File -> Open,选择项目的build.gradle` -
按照提示设定
Gradle -
下载依赖和编译
gradle 版本和 Idea 版本不匹配
本地的 gradle 版本号是 5.4.1
$ gradle -v Welcome to Gradle 5.4.1!
IDEA 工具的版本是 2018.2,查了资料,有可能是高版本 gradle 需要新版本 IDEA ,于是我就去下载新版工具。
(顺便安利一下 新版本的主题 Dark Purple Theme )
更新 IDEA 后,在构建项目时,在最后一步卡住了,提示:
java.lang.AbstractMethodError: org.jetbrains.plugins.gradle.tooling.util.ModuleComponentIdentifierImpl.getModuleIdentifier()Lorg/gradle/api/artifacts/ModuleIdentifier;
查看资料,大概是 gradle 升级后,出现了 jar 版本兼容的问题,于是按照提示,修改了编译方式( 看上面 gradle 选择方式图片 ),修改完成后,能够正常构建项目。
参考资料
1、 解决IDEA在导入Gradle项目之后报Could not resolve symbol “XXX”错误
2、 gradle版本引起编译报错问题:Cause: org.jetbrains.plugins.gradle.tooling.util.ModuleComponentIdentifierImpl.getM
3、[Gradle 5 IntelJ java.lang.AbstractMethodError
](https://www.jianshu.com/p/f9951d5506fc)
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 【MyBatis源码分析】环境准备
- Spring 源码学习-环境准备
- linux内核源码之基础准备篇
- 《k8s-1.13版本源码分析》源码准备
- php – Laravel:一般错误:1615准备好的声明需要重新准备
- 详解Openstack环境准备
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Design for Hackers
David Kadavy / Wiley / 2011-10-18 / USD 39.99
Discover the techniques behind beautiful design?by deconstructing designs to understand them The term ?hacker? has been redefined to consist of anyone who has an insatiable curiosity as to how thin......一起来看看 《Design for Hackers》 这本书的介绍吧!
RGB转16进制工具
RGB HEX 互转工具
随机密码生成器
多种字符组合密码