mac上通过idea编译Spring5.1.x

Spring学习到现在,一直都处于使用阶段,没有详细的研究过,最近在研究Spring5源码的时候,网上大神建议编译spring5源码方便学习,

在编译的过程中遇到了一些坑,以下就是整理出来的步骤,分享给大家:

 
 
一、环境、工具准备
  1、系统:mac os10.15.4
  2、java版本:jdk1.8.0_181   下载地址:https://www.oracle.com/java/technologies/javase-downloads.html
  3、gradle版本:4.10.2  下载地址:https://downloads.gradle-dn.com/distributions/gradle-4.10.2-all.zip
  4、源码版本:5.1.x  下载地址:https://github.com/spring-projects/spring-framework/releases
  5、IDEA版本:ntelliJ IDEA 2018.2.1 下载地址:https://www.jetbrains.com/idea/download/
  
二、下载源码
  

 

 

点击“clone or download” 按钮下载源码

 

 

下载完成后解压

 

 

- build.gradle 放了一些依赖配置,有点像maven的pom文件 
- gradle.properties 存放当前Spring的版本,可以对比下看看是不是5.0.8版本 
- gradlew.bat 放的是项目的构建脚本,不过在本章用不上,本章是使用IDEA去构建 
- import-into-idea.md 这个是Spring导入IDEA的说明文件,可以根据里面的步骤去导入
 
三、安装gradle并配置gradle
解压gradle-4.10.2-all.zip ,并记录下解压后的路径(配置的时需要用到),例:/Users/ruihaohao/software/gradle-4.10.2
通过终端在当前系统用户目录下打开 .bash_profile
cd /Users/ruihaohao vi .bash_profile
加入:
export GRADLE_HOME=/Users/ruihaohao/software/gradle-4.10.2/bin
export PATH=$PATH:$GRADLE_HOME

 

 

验证是否配置成功:gradle -v
 

 

 

四、安装IDEA
 
五、idea导入源码
点击File->Open打开项目,选择源码位置 gradlejvm配置:-XX:MaxPermSize=2048m -Xmx2048m -XX:MaxHeapSize=2048m

 

 

点击OK

 


 

 

之后打开import-into-idea.md文件

 

 

a,因为其他项目需要依赖spring-core和spring-oxm,所以我们导入后需要先编译这两个包
 
在源码的根目录执行:gradle cglibRepackJar gradle objenesisRepackJar,或手动添加spring-objenesis-repack 和 spring-cglib-repack两个jar(百度云盘链接: https://pan.baidu.com/s/1YVcXmZnKKYisgRk3yZ8tFA 提取码:q561 )
 
b、由于对IntelliJ IDEA未知的方面类型的引用,spring方面无法编译。详见http://youtrack.jetbrains.com/issue/IDEA-64446。同时,可以从项目中排除“spring-aspects”,以避免编译错误
c、虽然JUnit测试是从命令行通过Gradle的,但是当从IntelliJ IDEA运行时,有些测试可能会失败。解决这个问题正在进行中。
如果试图从IntelliJ IDEA中运行所有JUnit测试,则可能需要设置以下VM选项以避免内存不足错误:
-XX:MaxPermSize=2048m-Xmx2048m-XX:MaxHeapSize=2048m
d、如果在IDE中调用“Rebuild Project”,则必须再次生成spring oxm
模块的一些测试资源(gradle :springoxm:compileTestJava)
 
注:注意gradle和jdk的版本
 
六、验证测试
在刚编译的spring5的源码中增加测试model spring-learn

 

 

测试代码如下
 

 

 

 

 

 

 
测试如下:
 

 

 

到此为止测试成功!!!!

posted @ 2020-04-11 19:14  小楼一夜雨  阅读(407)  评论(1)    收藏  举报