搭建spring源码笔记
此文章记录spring源码搭建过程,搭建过程很费时,在此做个笔记,同时分享给需要的小伙伴
正文
访问GitHub官网(下载源码):https://github.com
搜索spring:点击:spring-projects/spring-framework 分支选择5.0.X 然后下载zip压缩包(spring源码)
环境介绍 ,jdk:1.8,gradle:4.8.1, IDEA:2020.1(如果是idea2018 可能需要安装插件,推荐2019以上版本);
解压spring源码,修改build.gradle文件 添加阿里云镜像(不然下载jar需要很久-大概一小时)(可以跳过)
直接导入源码(选择源码解压的根目录即可)
项目导入后spring-core工程里会有编译报错(org.springframework.objenesis.SpringObjenesis这个类报错)是因为缺少jar引起的
1)首先找到spring-beans.gradle文件,将最后三行注释
2)然后在项目根目录下执行cmd:执行两个命令:gradle objenesisRepackJar,gradle cglibRepackJar 注意:gradle安装版本过高会报错!
3)关闭项目重新打开项目即可(报错解决)
第4步中,生成的jar包(spring-core)spring-cglib-repack-3.2.6.jar,spring-objenesis-repack-2.6.jar
将这两个jar放在新建文件夹libs中,然后修改spring-core.gradle ,在89行加入:compile fileTree(dir: ‘libs’,include: ‘*.jar’)
加入之后编译就不需要执行第五步的两个命令了,然后项目clean
此时项目虽然不报错,但是编译会报错!
解决AspectJ编译问题:
1、https://www.eclipse.org/aspectj/downloads.php 下载aspectj jar包(选择稳定版本,我选择1.9.0版本)
2、在下载后jar所在位置执行cmd窗口,然后执行java -jar aspectj-1.9.0.jar 进行aspectj安装,安装时先选择jdk目录,然后选择aspectj的安装目录
3、idea设置Ajc编译,File -> Project Structure -> Facets -> 增加AspectJ(spring-aop_main ,spring-aspects_main),同时删除
Kotlin,这两个项目都要删,然后设置Gradle(扳手图标) -> Build,Execution,Deployment -> Compiler -> Java Compiler
-> 使用Ajc 编译,同时Path to Ajc compiler 选到AspectJ安装目录下aspectjtools.jar位置:D:\Java\AspectJ\lib\aspectjtools.jar,此位置根据自己安装目录而定
同时再勾选 Delegate to javac (这个必须勾选!!!)
4、spring-beans.gradle文件,将最后三行注释放开(注释这个地方是为了下载jar包,如果自己下载好了第5步不需要),否则编译报错!
至此,项目重新编译无问题