idea 导入Spring 5 源码

最近使用idea导入Spring5.1.x的源码,特此记录如下

1. 下载源码并解压

https://github.com/spring-projects/spring-framework/tree/5.1.x

2. 准备环境

idea 2018.1.2

jdk 1.8

gradle 4.10 (需要使用4版本的gradle,5版本导入会报错)

3. 使用idea定位并打开源码,等待依赖导入完成

idea 导入Spring 5 源码_第1张图片

4. 编辑setting.gradle 注掉spring-aspects模块

5. 预编译oxm模块

gradlew :spring-oxm:compileTestJava

6. 运行内置测试类,进行依赖包生成

测试类为:

org.springframework.context.annotation.AnnotationConfigApplicationContextTests#getBeanByType

7. 添加个人测试模块

此处要注意,不能像maven模块一样,直接在setting.gradle中添加模块,然后把代码拷过来,配置依赖就能用了。如果这样做通过 compile(project(":spring-beans")) 等依赖不过来,不清楚是我的IDE版本原因还是其他原因

新建gradle module

idea 导入Spring 5 源码_第2张图片

添加依赖

idea 导入Spring 5 源码_第3张图片

编写测试代码

idea 导入Spring 5 源码_第4张图片

 

AnnotationConfigACTest.java

package site.uuyy;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class AnnotationConfigACTest {

	public static void main(String[] args) {
		AnnotationConfigApplicationContext applicationContext=
                        new AnnotationConfigApplicationContext(AppConfig.class);
		DemoDao bean = applicationContext.getBean(DemoDao.class);
		bean.query();
	}
}

AppConfig.java

package site.uuyy;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

@Configuration
@ComponentScan("site.uuyy")
public class AppConfig {
}

DemoDao.java

package site.uuyy;

import org.springframework.stereotype.Component;

@Component
public class DemoDao {

	public void query() {
		System.out.println("hello spring code!");
	}
}

 

8. 报错及问题

    kotlin 报错,在setting-》plugins中更新kotlin即可

    其他问题暂未发现,如果第6步运行的是其他测试类,个人的测试模块编写如果参考第7步的编写可能会出现问题

你可能感兴趣的:(#,源码)