Spring源码本地环境搭建

拉取源码

首先我们到GitHub上找到Spring项目:
在这里插入图片描述

将版本切换到5.0.x,然后复制分支链接:https://github.com/spring-projects/spring-framework.git
在这里插入图片描述

直接通过idea拉取项目或者使用命令拉取:
在这里插入图片描述
在这里插入图片描述

项目导入

由于Spring 5之后都是采用Gradle构建的,所以导入项目前本地需要有Gradle环境。
Gradle下载地址:https://gradle.org/releases/

下载完成之后,解压并添加环境变量:
在这里插入图片描述
在这里插入图片描述
配置好之后通过gradle -v命令查看gradle版本,如果显示了版本信息,说明配置生效了:
在这里插入图片描述

通过Gradle导入:
在这里插入图片描述

项目属性设置:
在这里插入图片描述

导入之后等待项目构建完成,构建成功之后会看到下图所示:
在这里插入图片描述
如果中途构建出错,或者超时了,点击gradle视图中的刷新按钮,会自动重新构建:
在这里插入图片描述

编译

先使用gradle进行build:
在这里插入图片描述
然后再对项目进行编译:
在这里插入图片描述

填坑之旅

1、Kotlin: [Internal Error] java.lang.LinkageError
如果出现这个错可能是Kotlin版本太低或者idea版本太低导致的:
在这里插入图片描述
可以尝试升级Kotlin或者升级idea:
在这里插入图片描述
在这里插入图片描述
GitHub上也有人遇到了这个问题:https://github.com/spring-projects/spring-framework/issues/23354
在这里插入图片描述
我的升级完Kotlin就不报这个错了。

2、Gradle build的过程中checkstyle校验不过
出现这个问题我们可以把去掉checkstyle,首先找到项目根目录的build.gradle文件:
在这里插入图片描述
然后将下图所示的两处地方注释掉,然后重新build就可以了:
在这里插入图片描述
在这里插入图片描述
3、Error:(43, 16) java: 找不到符号符号: 类 AnnotationCacheAspect位置: 类 org.springframework.cache.aspectj.AspectJCachingConfiguration
在这里插入图片描述
原因是因为AnnotationCacheAspect文件不是class而是aspect所以jdk识别不了无法编译。

我们需要安装aspectj.jar使用Ajc进行编译。

aspectj.jar下载地址:https://www.eclipse.org/aspectj/downloads.php
在这里插入图片描述
下载好之后,在此文件的同级目录执行java -jar aspectj-1.9.4.jar命令打开安装界面:
在这里插入图片描述
在这里插入图片描述
选择jdk安装目录:
在这里插入图片描述
设置aspectj安装位置:
在这里插入图片描述
点击install开始安装:
在这里插入图片描述
对AspectJ项目添加Facets,File -> Project Structure:
在这里插入图片描述
选择你所需要添加的Module,点击ok:
在这里插入图片描述
添加好之后Apply确认:
在这里插入图片描述
修改编译器为Ajc
在这里插入图片描述
找到Java Compiler,将Use compiler修改为Ajc并选择Ajc的路径,然后勾选中Delegate to Javac,它的作用是只编译添加了AspectJ的项目,其他则使用Jdk:
在这里插入图片描述
测试代码:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

	<bean id="myTestBean" class="org.springframework.test.MyTestBean"/>
</beans>
public class Test {
	public static void main(String[] args) {
		BeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource("beanFactoryTest.xml"));
		MyTestBean bean = (MyTestBean) beanFactory.getBean("myTestBean");
		bean.outStr();
	}
}

class MyTestBean {

	public void outStr() {
		System.out.println("myTestBean");
	}
}

运行,成功输出:
在这里插入图片描述
一波三折,Spring源码本地环境终于构建成功!

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值