gradle方式配合idea搭建spring6和springboot3源码编译环境

一. 篇文使用环境

基础环境 版本 本地路径
操作系统 Windows 11 -
Spring源码 6.0.3 D:\myproject\spring-framework-6.0.3
spring boot 源码 spring-boot-3.0.1 D:\myproject\spring-boot-3.0.1
Java环境 JDK 17 D:\myapp\java\jdk-17.0.5
编译工具 Gradle 7.6 D:\myapp\gradle\gradle-7.6
开发工具 IDEA 2022.2.3 D:\myapp\JetBrains\IntelliJ IDEA 2022.3

二. 前置环境安装

本篇文章默认已经装好

2.1 JDK环境安装

根据官方文档描述, Spring 6 需要 JDK 17

JDK官方地址

https://www.oracle.com/cn/java/technologies/downloads/#java17

2.2 IDEA 安装

idea官方地址

https://www.jetbrains.com/idea/download/#section=windows

2.3 Gradle 安装

gradle官方地址

https://gradle.org/releases/

注意:gradle 的版本要高于等于idea 版本

gradle方式配合idea搭建spring6和springboot3源码编译环境_第1张图片

三.、源码编译

Spring源码github:https://github.com/spring-projects/spring-framework

Spring boot源码github https://github.com/spring-projects/spring-boot

3.1 获取方式

不建议zip包方式下载源代码,具体看官方issue:https://github.com/spring-projects/spring-framework/issues/24467

这里看个人选择,本篇文章选择压缩包的方式

(1)git 拉取方式

本篇文章不描述

(2)压缩包下载

gradle方式配合idea搭建spring6和springboot3源码编译环境_第2张图片

 下载成功并解压缩

gradle方式配合idea搭建spring6和springboot3源码编译环境_第3张图片

3.2 环境设置

3.2.1 IDEA设置

File → Settings → Build,Execution,Deployment → Build Tools → Gradle

gradle方式配合idea搭建spring6和springboot3源码编译环境_第4张图片

 3.2.2 修改源码文件

(1)打开阿里云云效maven官方地址

https://developer.aliyun.com/mvn/guide

3.2.3 找到源码对应目录

(1)找到解压的项目,修改在项目根路径下的build.gradle

修改spring6

1.添加阿里云镜像
maven { url "https://maven.aliyun.com/repository/public" }

gradle方式配合idea搭建spring6和springboot3源码编译环境_第5张图片

 修改springboot3

1.添加阿里云镜像
maven { url "https://maven.aliyun.com/repository/public" }

gradle方式配合idea搭建spring6和springboot3源码编译环境_第6张图片

(3)找到解压的项目,修改在项目根路径下的settings.gradle

修改spring6

1.添加阿里云镜像
maven { url "https://maven.aliyun.com/repository/public" }

2.注释掉

/*id "io.spring.ge.conventions" version "0.0.11"*/

gradle方式配合idea搭建spring6和springboot3源码编译环境_第7张图片

修改springboot3

1.添加阿里云镜像
maven { url "https://maven.aliyun.com/repository/public" }

2.注释掉

/*id "io.spring.ge.conventions" version "0.0.11"*/

gradle方式配合idea搭建spring6和springboot3源码编译环境_第8张图片

(4)找到解压的项目,修改项目buildSrc下的build.gradle

修改spring6

1.添加阿里云镜像
maven { url "https://maven.aliyun.com/repository/public" }

gradle方式配合idea搭建spring6和springboot3源码编译环境_第9张图片

 修改springboot3

1.添加阿里云镜像
maven { url "https://maven.aliyun.com/repository/public" }

2.注释掉

/*id "io.spring.javaformat" version "${javaFormatVersion}"*/

gradle方式配合idea搭建spring6和springboot3源码编译环境_第10张图片

(5)找到解压的项目,修改在项目buildSrc路径下的settings.gradle

修改 spring boot3

1.添加阿里云镜像
maven { url "https://maven.aliyun.com/repository/public" }

gradle方式配合idea搭建spring6和springboot3源码编译环境_第11张图片

(6)找到解压的项目,修改在项目根路径下的gradle.properties

修改spring6

1.添加java路径

org.gradle.java.home=jdk所在目录

gradle方式配合idea搭建spring6和springboot3源码编译环境_第12张图片

 修改spring boot3

1.添加java路径

org.gradle.java.home=jdk所在目录

gradle方式配合idea搭建spring6和springboot3源码编译环境_第13张图片

3.3 导入项目到idea

3.3.1 选择项目JDK版本

File -> Project Structure 

gradle方式配合idea搭建spring6和springboot3源码编译环境_第14张图片

3.3.2 设置idea编码格式

3.4 在完成上述的源码导入和相关设置之后,就可以进行源码编译了。

spring6可以选择 先执行 spring-oxm 的预编译

四、问题整理

4.1 spring6的spring-aspects模块编译问题解决

gradle方式配合idea搭建spring6和springboot3源码编译环境_第15张图片

 

五、编写测试代码

5.1 spring6

1.新建模块 

2. 添加依赖

在新建模块下的 build.gradle 新增 spring-context 依赖

api(project(":spring-context"))

gradle方式配合idea搭建spring6和springboot3源码编译环境_第16张图片

 3. 编写代码

gradle方式配合idea搭建spring6和springboot3源码编译环境_第17张图片

package com.myspring.test;

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

@ComponentScan("com.myspring.test")
public class MySpring6Application {
	public static void main(String[] args) {
		AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(
				MySpring6Application.class
		);

		HelloWorld bean = context.getBean(HelloWorld.class);
		bean.hello();
	}
}
package com.myspring.test;

import org.springframework.stereotype.Repository;

@Repository
public class HelloWorld {
	public void hello(){
		System.out.println("HelloWorld!");
	}
}

4.执行用例

gradle方式配合idea搭建spring6和springboot3源码编译环境_第18张图片

 5.2 spring boot3

这里本篇文章直接使用源码的测试用例

gradle方式配合idea搭建spring6和springboot3源码编译环境_第19张图片

五、完结撒花

        这里先预祝大家编译成功。本篇文章根据官方文档编译 spring 6 和spring boot3源码,遇到问题,再到工程新增测试用例代码。

        提醒,一定要带着一个目的去看源码,带着是什么(what);为什么(why);怎么做(how)的方式去思考,不要被动式的为了学习而学习,不然很容易迷失在源码里,看源码最终目的是学习别人思路。

2023-1-12

你可能感兴趣的:(源码阅读,intellij-idea,java,spring,spring,boot)