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

目录
  • 一、编译环境
  • 二、安装gradle
    • 1、下载
    • 2、配置
      • 2.1、gradle下载后不需要安装,直接解压到磁盘
      • 2.2、配置gradle环境变量
      • 2.3、配置gradle默认的本地仓库
      • 2.4、检查是否安装成功
  • 三、下载spring源码
    • 1、进入github官网,直接搜索spring
    • 2、选择spring官方源码
    • 3、选择版本5.x.x
    • 4、下载zip压缩包
    • 5、解压
  • 四、编译spring5源码
    • 1、将项目导入idea中
    • 2、编译配置
  • 五、测试spring是否编译成功
    • 1、新建一个module
    • 2、引入spring相关功能模块
    • 3、编写测试代码

一、编译环境

  • spring5.0.x源码
  • gradle4.9
  • jdk1.8_151
  • IntelliJ IDEA 2020.1

二、安装gradle

1、下载

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

2、配置

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

2.2、配置gradle环境变量

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

path环境:

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

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

path环境:

2.4、检查是否安装成功

三、下载spring源码

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

2、选择spring官方源码

3、选择版本5.x.x

4、下载zip压缩包

5、解压

四、编译spring5源码

1、将项目导入idea中

此处不再赘述

2、编译配置

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

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

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

五、测试spring是否编译成功

1、新建一个module

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

2、引入spring相关功能模块

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

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源码的文章就介绍到这了,更多相关idea编译spring5内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 原因分析IDEA导入Spring-kafka项目Gradle编译失败

    目录 前言 异常信息 具体原因 解决问题 前言 最近在弄kafka相关的东东,因为是spring boot工程,所以用到了Spring-kafka,一个包含了kafka-producer和kafka-consumer自动装配的依赖.为了进一步研究spring是如何封装的kafka官方客户端的细节,所以从github上拉到了源码准备研究下,在导入到IDEA中时,因为Spring-kafka工程使用的是Gradle,导入时就编译失败了,导入工程失败. Spring-kafka地址:https://g

  • IDEA使用Gradle构建SpringBoot项目工程的详细教程

    背景 最近在研究搭建spring源码调试环境时,接触到到gradle项目构建工具.由于之前习惯于maven项目的构建,故通过此文记录相关gradle的项目构建知识. Gradle Gradle是一个构建工具,用于管理项目依赖和构建项目工程.Gradle抛弃了Maven的基于XML的繁琐配置,采用特定语言Groovy的配置,大大简化了构建代码的行数. 项目结构 Plugin Sample pluginManagement { repositories { gradlePluginPortal()

  • IDEA 2020.2 +Gradle 6.6.1 + Spring Boot 2.3.4 创建多模块项目的超详细教程

    环境介绍 IDEA 我用的是2020.2 Gradle 安装参考 Gradle安装配置 我这安装的是6.6.1 C:\Users\herion>gradle -v ------------------------------------------------------------ Gradle 6.6.1 ------------------------------------------------------------ Build time: 2020-08-25 16:29:12 U

  • 使用idea和gradle编译spring5源码的方法步骤

    写在前面:spring 应该对于每个从事java开发的大兄弟们来说应该都不陌生的,作为一个从业两年多的小开发仔,个人觉得,每天都在面对spring,确从来没有编译过spring源码,有点不太合适.最近在研究spring源码的时候,突然想起编译一下spring源码,网上应该也有很多大神编译过spring源码,在这里我把我再编译过程的遇到的坑,来跟大家分享下. 版本工具:spring5.0.x,gradle4,9,jdk1.8_131,kotlin1.2.51,groovy2.4.15,Intell

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

    目录 一.编译环境 二.安装gradle 1.下载 2.配置 2.1.gradle下载后不需要安装,直接解压到磁盘 2.2.配置gradle环境变量 2.3.配置gradle默认的本地仓库 2.4.检查是否安装成功 三.下载spring源码 1.进入github官网,直接搜索spring 2.选择spring官方源码 3.选择版本5.x.x 4.下载zip压缩包 5.解压 四.编译spring5源码 1.将项目导入idea中 2.编译配置 五.测试spring是否编译成功 1.新建一个modul

  • idea2020导入spring5.1的源码的详细教程

    1.先来说下导入环境和工具:     java版本:1.8     idea: idea2020     gradle:gradle5.3 2.gradle的安装     idea导入spring的源码时,每次构建的时候都会去下载gradle,所以如果我们能提前下好gradle可以提高构建速度.     gradle下载地址:https://services.gradle.org/distributions/     上面放的地址可以找到gradle的所有版本.(注意:构建spring源码是有版

  • IDEA2020.1构建Spring5.2.x源码的方法

    内容概览 使用IDEA2020.1构建Spring5.2.x源码 环境 源码:spring5.2.xjdk11.08idea2020.1 spring spring5.2.x源码下载地址 gradle 下载 查看spring使用的gradle版本,这里要记得将distributionUrl指向本地的gradle包,不然还是会去下载的. distributionUrl=file:///H:/download/gradle-5.6.4-bin.zip gradle下载地址 安装 window下,配置

  • idea2020导入spring5.1的源码详细教程

    1.先来说下导入环境和工具: java版本:1.8 idea: idea2020 gradle:gradle5.3 2.gradle的安装 idea导入spring的源码时,每次构建的时候都会去下载gradle,所以如果我们能提前下好gradle可以提高构建速度. gradle下载地址:https://services.gradle.org/distributions/ 上面放的地址可以找到gradle的所有版本.(注意:构建spring源码是有版本要求的,所以尽量选择高版本的gradle) 下

  • nginx源码分析configure脚本详解

    nginx源码分析--configure脚本 一.前言 在分析源码时,经常可以看到类似 #if (NGX_PCRE) .... #endif 这样的代码段,这样的设计可以在不改动源码的情况下,通过简单的定义宏的方式来实现功能的打开与关闭,但是在nginx/src目录下始终没有找到宏 NGX_PCRE 对应的 #define 语句. 在之前介绍event模块的时候,讲到init_cycle函数中对cycle进行了初始化,其中很重要一步操作就是讲包含所有module信息的数组拷贝到这个cycle对应

  • JAVA 枚举单例模式及源码分析的实例详解

    JAVA 枚举单例模式及源码分析的实例详解 单例模式的实现有很多种,网上也分析了如今实现单利模式最好用枚举,好处不外乎三点: 1.线程安全 2.不会因为序列化而产生新实例 3.防止反射攻击但是貌似没有一篇文章解释ENUM单例如何实现了上述三点,请高手解释一下这三点: 关于第一点线程安全,从反编译后的类源码中可以看出也是通过类加载机制保证的,应该是这样吧(解决) 关于第二点序列化问题,有一篇文章说枚举类自己实现了readResolve()方法,所以抗序列化,这个方法是当前类自己实现的(解决) 关于

  • vue 虚拟dom的patch源码分析

    本文介绍了vue 虚拟dom的patch源码分析,分享给大家,具体如下: 源码目录:src/core/vdom/patch.js function updateChildren (parentElm, oldCh, newCh, insertedVnodeQueue, removeOnly) { let oldStartIdx = 0 let newStartIdx = 0 let oldEndIdx = oldCh.length - 1 let oldStartVnode = oldCh[0]

  • JDK源码分析之String、StringBuilder和StringBuffer

    前言 本文主要介绍了关于JDK源码分析之String.StringBuilder和StringBuffer的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 String类的申明 public final class String implements java.io.Serializable, Comparable<String>, CharSequence {-} String类用了final修饰符,表示它不可以被继承,同时还实现了三个接口, 实现Serializa

  • 浅谈Android的Lifecycle源码分析

    1. 简介 很早就听说了Google的Lifecycle组件,因为项目没有使用过,所以并没有过多的接触.不过最近看到了一篇文章,其中的一条评论提到了LiveData.恰巧这两天工作内容不多,所以赶紧研究一波! 不过在看LiveData之前,我觉得还是先看下Lifecycle吧(Lifecycle更像是LiveData的基础). 2. Lifecycle的简单介绍 Lifecycle的介绍,我们还是拿Google的官方文档作为参考吧. Lifecycle主要解决的是业务和Activity/Frag

随机推荐