Mac下使用IntelliJ IDEA导入Spring源码-Spring源码分析系列(一)
1. Github官网下载Spring源码
Spring的源码已经迁移到github,网址为https://github.com/spring-projects/spring-framework
,选择分支5.0.×/tags/v5.0.2.RELEASE,点击下载zip文件。
下载好之后解压,在Spring-framework文件夹下找到import-into-idea.md并打开,里面有导入idea的详细步骤和说明。
Steps 步骤
Within your locally cloned spring-framework working directory:
在你本地克隆spring-framework工作目录
- Precompile
spring-oxm
with./gradlew :spring-oxm:compileTestJava
用命令 ./gradlew :spring-oxm:compileTestJava 预编译 spring-oxm - Import into IntelliJ (File -> New -> Project from Existing Sources -> Navigate to directory -> Select build.gradle)
导入到IntelliJ(文件->新建->从已存在文件创建工程->选择目录->选择build.gradle) - When prompted exclude the
spring-aspects
module (or after the import via File-> Project Structure -> Modules) - Code away
开始浏览代码吧
2. 下载安装Gradle
到Gradle 官网下载,下载并解压之后,配置环境变量,Linux/Mac平台下将环境变量添加到当前用户下下.bash_profile中即可(windows平台在环境环境中添加GRADLE_HOME,然后将bin目录添加到Path环境变量中)。配置好环境变量之后在终端中输入gradle -v,如果出现版本信息,说明gradle已经安装成功。
------------------------------------------------------------
Gradle 4.6
------------------------------------------------------------
Build time: 2018-02-28 13:36:36 UTC
Revision: 8fa6ce7945b640e6168488e4417f9bb96e4ab46c
Groovy: 2.4.12
Ant: Apache Ant(TM) version 1.9.9 compiled on February 2 2017
JVM: 1.8.0_151 (Oracle Corporation 25.151-b12)
OS: Mac OS X 10.13.3 x86_64
3. 编译源代码
安装好Gradle之后就可以对源码进行编译了(将jdk版本升级到1.8)
网友文章建议 :
因为编译项目的时候有一个-XX:MaxMetaspaceSize=1024m的参数需要jdk1.8才支持,否则会报错。
在stackflow上看到三种解决办法:
1. 升级jdk到1.8;
2. 删掉这个配置;
3. 用3.x版本的分支代码,不用最新的。根据我的实践,第二种方法是治标不治本,因为在最新的Spring中使用到了jdk1.8的新特性,如果不升级到1.8将来还是会报错。
到spring-framework路径下执行命令gradlew.bat cleanIdea :spring-oxm:compileTestJava
,等待编译完成(注:编译过程中会自动联网下载依赖,没网的话就杯具啦,编译过程耗时比较长,需耐心等待,直到打印build successful,Ok,搞定)。
4. 最后一步,导入IDEA
打开IDEA,File->New->Project From Existing Source,选中spring-framework文件夹,OK->Import project from external model,选中Gradle,点击Next,然后点击Finish,等待IDEA导入完成即可。