使用idea+gradle编译spring5.x.x源码分析

作者:DM搬运工 时间:2022-05-13 15:13:31 

一、编译环境

  • spring5.0.x源码

  • gradle4.9

  • jdk1.8_151

  • IntelliJ IDEA 2020.1

二、安装gradle

1、下载

下载地址:https://services.gradle.org/distributions/

使用idea+gradle编译spring5.x.x源码分析

2、配置

2.1、gradle下载后不需要安装,直接解压到磁盘

使用idea+gradle编译spring5.x.x源码分析

2.2、配置gradle环境变量

新建GRADLE_HOME变量,path中增加%GRADLE_HOME%/bin即可,如下图:

使用idea+gradle编译spring5.x.x源码分析

path环境:

使用idea+gradle编译spring5.x.x源码分析

2.3、配置gradle默认的本地仓库

gradle和maven类似,工作时也需要一个本地仓库,管理工程jar包

使用idea+gradle编译spring5.x.x源码分析

path环境:

使用idea+gradle编译spring5.x.x源码分析

2.4、检查是否安装成功

使用idea+gradle编译spring5.x.x源码分析

三、下载spring源码

1、进入github官网,直接搜索spring

使用idea+gradle编译spring5.x.x源码分析

2、选择spring官方源码

使用idea+gradle编译spring5.x.x源码分析

3、选择版本5.x.x

使用idea+gradle编译spring5.x.x源码分析

4、下载zip压缩包

使用idea+gradle编译spring5.x.x源码分析

5、解压

使用idea+gradle编译spring5.x.x源码分析

四、编译spring5源码

1、将项目导入idea中

此处不再赘述

使用idea+gradle编译spring5.x.x源码分析

2、编译配置

(idea2020以上版本忽略此步,idea将自动帮助我们配置并编译构建)

使用idea+gradle编译spring5.x.x源码分析

注:因为其他项目需要依赖spring-core和spring-oxm,所以我们导入后需要先编译这两个包

当idea右边窗口的gradle有如下模块,则表示编译构建完成:

使用idea+gradle编译spring5.x.x源码分析

五、测试spring是否编译成功

1、新建一个module

使用idea+gradle编译spring5.x.x源码分析

使用idea+gradle编译spring5.x.x源码分析

使用idea+gradle编译spring5.x.x源码分析

完成以上步骤后,idea将帮我们自动编译构建,构建完成后将打开所有项目的目录:

使用idea+gradle编译spring5.x.x源码分析

2、引入spring相关功能模块

打开刚刚新建module中的build.gradle文件,引入spring依赖

使用idea+gradle编译spring5.x.x源码分析

3、编写测试代码

config模块

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

service模块

@Service
public class TestService {
}

测试

public class MyTest {
public static void main(String[] args) {
AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class);
TestService bean = applicationContext.getBean(TestService.class);
System.out.println("bean:::::"+bean);
}
}

出现下面结果则表示spring源码编译成功,可以为所欲为了

使用idea+gradle编译spring5.x.x源码分析

来源:https://blog.csdn.net/weixin_45865428/article/details/124359370

标签:idea,编译,gradle,spring5
0
投稿

猜你喜欢

  • C#实体对象序列化成Json并让字段的首字母小写的两种解决方法

    2023-02-24 18:41:44
  • Java数据结构之链表详解

    2023-10-20 09:14:08
  • C#同步和异步调用方法实例

    2022-09-11 21:20:50
  • Java读取.properties配置文件方法示例

    2023-08-24 16:32:56
  • Java统计输入字符的英文字母、空格、数字和其它

    2022-11-13 04:11:31
  • SpringBoot日志框架之Log4j2快速入门与参数详解

    2023-11-15 21:17:59
  • 详解Spring Boot微服务如何集成fescar解决分布式事务问题

    2022-01-21 18:43:51
  • Java字符判断的小例子

    2023-08-26 17:29:49
  • Java枚举的七种常见用法总结(必看)

    2022-10-10 08:38:43
  • spring框架cacheAnnotation缓存注释声明解析

    2022-04-14 17:13:05
  • Java 深入浅出掌握Collection单列集合Set

    2023-10-07 18:49:32
  • Gradle:修改默认的Build配置文件名方式

    2023-11-28 20:18:01
  • swagger添加权限验证保证API(接口)安全性(两种方法)

    2023-11-27 18:58:33
  • 详解SpringBoot项目的创建与单元测试

    2021-06-17 05:13:17
  • Java监听器ActionListener与MouseListener的执行顺序说明

    2022-02-04 20:08:23
  • linux环境下java程序打包成简单的hello world输出jar包示例

    2023-11-26 11:11:37
  • Mybatis实现单个和批量定义别名typeAliases

    2023-02-11 06:27:03
  • 老生常谈反射之Class类的使用(必看篇)

    2022-07-20 16:32:30
  • 利用Java读取二进制文件实例详解

    2023-07-27 03:25:42
  • SpringBoot分页查询功能的实现方法

    2023-07-14 02:22:21
  • asp之家 软件编程 m.aspxhome.com