IDEA编译spring-framework

IDEA编译spring-framework

本人已测试通过的项目GitHub地址:https://github.com/simplefanC/spring-framework-5.2.0.release

环境

开发工具: IntelliJ IDEA 2020.3

操作系统: windows 10

Spring版本:spring-framework-5.2.0.release

编译

  1. 下载Spring源码

    访问Spring官方源码地址 https://github.com/spring-projects/spring-framework,下载源码zip包到本地并解压

  2. build.gradle配置镜像(参见GitHub)

    1. buildscript中添加镜像

      repositories {
      	maven{ url 'https://maven.aliyun.com/nexus/content/groups/public/' }
      	maven{ url 'https://maven.aliyun.com/nexus/content/repositories/jcenter'}
      }
      
    2. dependencyManagement下repositories中添加镜像

      repositories {
      	maven { url 'https://maven.aliyun.com/nexus/content/groups/public/'}
      	maven { url 'https://maven.aliyun.com/nexus/content/repositories/jcenter'}
      	mavenCentral()
      	maven { url "https://repo.spring.io/libs-spring-framework-build" }
      }
      
  3. 预编译

    gradlew :spring-oxm:compileTestJava

IDEA编译spring-framework_第1张图片

  1. 导入Spring源码至IntelliJ IDEA

    将之前下载好的Spring源码解压后导入到IDEA,依次点击File->Open,选择源码包路径下的build.gradle文件完成源码导入

IDEA编译spring-framework_第2张图片

IDEA编译spring-framework_第3张图片

接下来要对idea进行设置(非必须),否则每次idea运行都会通过gradle去编译运行——gradle运行编译较慢;改为idea编译运行

IDEA编译spring-framework_第4张图片

自此,编译的整个过程已经完成。下面通过添加模块对已编译的项目模块进行测试

测试

IDEA编译spring-framework_第5张图片

IDEA编译spring-framework_第6张图片

建好项目之后在gradle的配置文件中添加spring的依赖

IDEA编译spring-framework_第7张图片

代码

配置类

@Configuration
@ComponentScan("com.simplefanc")
public class AppConfig {
}

组件类

@Component
public class AppService {
}

测试类(获取bean)

public class App {
	public static void main(String[] args) {
		AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
		System.out.println(context.getBean(AppService.class));
	}
}

结果

IDEA编译spring-framework_第8张图片

问题

  1. 找不到符号 类InstrumentationSavingAgent

    首先找到报错这个类所在的项目(如spring-instrument)

    再看看该项目out文件夹(idea默认编译文件为out)下面是否有这个class

    解决:可以运行该项目下面的测试类test让idea去帮我们编译这些java类

    遇到其他这类问题也可类似这种办法解决

  2. 缺少 cglib 和 objenesis 包
    Kotlin: warnings found and -Weeror specified

image-20210505144351667

​ 解决:双击以下两个jar

IDEA编译spring-framework_第9张图片

参考:

  1. https://github.com/spring-projects/spring-framework/wiki/Build-from-Source
  2. https://github.com/spring-projects/spring-framework/blob/main/import-into-idea.md
  3. https://blog.csdn.net/java_lyvee/article/details/107300648
  4. https://blog.csdn.net/zjssoul/article/details/110939030

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