【spring源码深度解析】idea下载spring源码,本地构建项目

  • 系列文章目录
    • 【spring源码深度解析】开篇:我对于spring框架的理解
    • 【spring源码深度解析】:BeanFactory和ApplicationContext之BeanFactory
    • 【spring源码深度解析】:BeanFactory和ApplicationContext之ApplicationContext
    • 【spring源码深度解析】:事务
  • 附录
    • 【spring源码深度解析】idea下载spring源码,本地构建项目
    • 【spring源码深度解析】:循环依赖

步骤如下:

  1. 从github上(https://github.com/spring-projects/spring-framework)选择相应版本后(点击master下拉框切换分支版本,这里下载的是5.0.x版本),拷贝浏览器地址
  2. idea中点击File -> new -> project from version control -> github (需要登陆GitHub账号,自行注册即可),输入1中拷贝地址,然后自动引入对应版本gradle(5.0.x版本,gradle版本对应4.0.2),等待idea自行构建。
  3. 写一个测试类测试启动spring,如
	public static void main(String[] args) {
		ApplicationContext applicationContext=new ClassPathXmlApplicationContext("spring.xml");
		applicationContext.getBean("test");
	}

若能启动成功,恭喜你,spring源码项目已构建完成!!!
不过大概率会启动报错。。。会提示有一些类找不到,是因为缺失spring-cglib-repack和spring-objenesis-repack这两个依赖,不用去网上找对应的jar包下载,idea右侧栏点击gradle(没有的点击view -> tool windows -> gradle),找到图示位置
【spring源码深度解析】idea下载spring源码,本地构建项目_第1张图片

执行cglibRepackJarobjenesisRepackJar命令即可。

再启动步骤3中测试类,继续报错:找不到符号InstrumentationSavingAgent,这个问题其实就和maven项目里依赖有问题找不到某个类一样。
解决办法:
找到所在项目模块的gradle文件(就是maven里的pom.xml),这里是spring-context.gradle,往下拉到【dependencies】部分,因为InstrumentationSavingAgent类是在spring-instrument模块里,所以找到optional(project(":spring-instrument")),把optional修改为compile,这时就和修改了maven的pom文件一样,右下角会提示import changes,点击重新依赖即可。
如果还有类似找不到符号XXX的问题,重复上面操作即可,该问题会多次出现,需要一定耐心,解决后测试类就能正常启动了

你可能感兴趣的:(spring源码深度解析,java,spring,后端,intellij,idea)