目录

1.spring源码编译

1.1 准备工作

1.2 构建工具准备

1.3 修改build.gradle

1.4 编译工作

1.5 导入项目到idea中


1.spring源码编译

1.1 准备工作

本示例基于 SpringV5.2.7RELEASE+GradleWapper+jdk1.8.0_131编译

环境准备

  • maven
  • jdk8+
  • idea

源码下载

  • 进入https://github.com/spring-projects/spring-framework

Spring的源码是发布在github上面的 ,下载最新版发布版源码,只要5.x的正式发布(RELEASE)版本就行

稍微介绍版本代号

1.2 构建工具准备

安装源码对应的gradle版本(也可不安装),建议使用gradleWraper中的gradle。

Gadle介绍:

Gradle是个构建系统,能够简化你的编译、打包、测试过程。熟悉Java的同学,可以把Gradle类比成Maven。
Gradle Wrapper的作用是简化Gradle本身的安装、部署。不同版本的项目可能需要不同版本的Gradle,手工部署的话比较麻烦,而且可能产生冲突,所以需要Gradle Wrapper帮你搞定这些事情。
Gradle Wrapper是Gradle项目的一部分。

gradleWraper在该文件中有体现,相当于远程自动下载gradle到本地(所以你可以下载gradle,也可以不下,因为可以使用gradleWraper远程的统一版本):

spring-framework-5.2.7.RELEASE\gradle\wrapper\gradle-wrapper.properties

所以如果你需要下载也最好下载该链接对应的gradle版本

1.3 修改build.gradle

这个文件就相当于我们Maven的pom.xml 管理项目的依赖等信息...

设置镜像

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" }

}

1.4 编译工作

按照官网的方式编译:

使用gradlew(gradle-wrapper命令) 先编译oxm:compileTest Java: Precompile spring-oxm with ./gradlew :spring-oxm:compileTestJava

编译compileTestJava模块

打开源码所在文件夹,在windows cmd命令中输入,在windows中当前目录无需输入“./”。

gradlew :spring-oxm:compileTestJava

配置了镜像很快(一两分钟)就能编译完成, 如果要很久说明你的镜像没起作用,如果编译异常请自行百度,每个人的电脑及环境产生的异常都有可能。

常见问题:

下载plugin出现401没有权限:

解决办法:

方案1(没有亲测). 把对应报错的plugin注释掉: 打开build.gradle--->plugins节点:

方案2(亲测有效):

  1. 将报错的插件去 阿里云仓库中按名字进行搜索, 如果1个都没搜到那还是采用方案1吧
  2. 如果搜到了开源看到是来自于gradle.plugin或jcenter仓库,并且版本只有0.0.4,没有0.0.2、
  3. 那这里就要改2个地方:1修改plugin下载镜像 2.修改plugin对应的版本

其他问题看笔记吧

1.5 导入项目到idea中

导入项目到idea中:Import into IntelliJ (File -> New -> Project from Existing Sources -> Navigate to directory -> Select build.gradle)

将项目导入到idea中提示配置gradle,按照如下配置

导入后等待编译,莫急,需要一点点时间,编译完成:

添加测试模块代码:Code away

new->model->gradle-->输入模块名称

编写代码测试ioc功能

1.添加依赖

dependencies {testCompile group: 'junit', name: 'junit', version: '4.12' compile(project(":spring-context"))
}

compile(project(":spring-context")) 代表本项目的

2.随意添加任意bean:

package cn.tulingxueyuan.beans;import org.springframework.stereotype.Service;/**** @Author 徐庶   QQ:1092002729* @Slogan 致敬大师,致敬未来的你*/
@Service
public class UserServiceImpl {public void sayHi(){System.out.println("Hello Spring!");}
}

添加启动配置类:

import cn.tulingxueyuan.beans.UserServiceImpl;
import javafx.application.Application;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;/**** @Author 徐庶   QQ:1092002729* @Slogan 致敬大师,致敬未来的你*/
@Configuration
@ComponentScan("cn.tulingxueyuan")
public class MainStat {public static void main(String[] args) {ApplicationContext context=new AnnotationConfigApplicationContext(MainStat.class);UserServiceImpl bean = context.getBean(UserServiceImpl.class);bean.sayHi();}
}

正确输出,大功告成!

spring源码编译相关推荐

  1. Spring源码编译报错那些事

    Spring源码编译报错那些事(不会吧不会吧,不会真的有人刚学习源码就被劝退了吧

  2. Gradle教程 Spring源码编译

    目录: gradle 安装配置 grovvy 语法介绍 gradle 仓库配置 gradle 配置文件讲解 gradle 案例:springboot + gradle打war包 gradle 多项目案 ...

  3. Spring源码编译测试

    Spring源码编译(以5.3.22版本为例) 参考作者:程序员七哥 https://www.bilibili.com/read/cv11704879/ 出处:bilibili 本项目环境版本介绍: ...

  4. spring源码编译和导入eclipse

    1.下载源码并解压 https://github.com/spring-projects/spring-framework/tree/v3.2.5.RELEASE 2.源码编译 cmd进入spring ...

  5. Spring源码系列(十三)——Spring源码编译及详细注解

    文章目录 1. 环境搭建 2. 代码编译 2.1 编译代码 2.1.1 build.gradle 2.1.1.1 第一处 2.1.1.2 第二处 2.1.2 gradle.properties 2.1 ...

  6. spring源码编译导入eclipse

    由于想更深入的学习下spring,于是下载了spring的源码编译之后导入eclipse.这其中出现了一些问题,虽然最后 工程能够build成功,但是这些问题仍然没有解决. 首先说说自己的一些比较蠢的 ...

  7. spring源码编译之gradle环境搭建(编译spring源码真的脑阔疼)

    官网 Gradle | Installation Gradle Distributions 下载 配置环境变量: GRADLE_HOME:D:\software\gradle-6.0.1-all\gr ...

  8. Spring源码编译教程(自己复习) 作者 周瑜

    1.Spring底层核心原理解析 作者:周瑜 笔记在线更新版:0_0 牛逼的Spring · 语雀 本节课会把Spring中核心知识点都给大家进行串讲,让大家对Spring的底层有一个整体的大致了解, ...

  9. Spring源码编译及过程中的一些问题总结

    1.跳过测试 gradlew build -x test 2.编译失败,提示信息为 Failed to create MD5 hash for file 'F:\code\spring-framewo ...

最新文章

  1. 全局变量声明的规范化
  2. model.fit() 参数详解【TensorFlow2入门手册】
  3. 从达标到卓越 —— API 设计之道
  4. 灰色预测模型matlab_Matlab数据分析,2020研究生报名人数灰色预测
  5. 更换百度地图图标html,百度地图接口,自定义图标,点击切换图标
  6. 员工管理系统数据库课程设计
  7. Qt使用语言家进行国际化,实现多国语言切换
  8. 任性与自制力差--拖延症(行为训练)
  9. PS进阶抠图详解(可以处理头发)
  10. ZOJ3987(二进制枚举+java大数)
  11. 陆琪:年薪十万凭什么不能开…
  12. 线性规划 - 数学建模
  13. 优化算法(四)——粒子群优化算法(PSO)
  14. 【DG】DG的3种保护模式
  15. mysql优化之前缀索引--带案例分析
  16. sigprocmask , sigpending 和 sigsuspend函数
  17. C++ int、long、long int、long long、uint64_t字节长度
  18. 区块链技术应用场景设想
  19. 把数字金额转换成中文大写数字
  20. 笑话理解之Devil

热门文章

  1. 【Mysql】Mysql SQL 大小写规范
  2. 基于VS和opencv的烟雾识别
  3. 汽车诊断之UDS入门-0x19(ReadDTCInformation)服务概述
  4. 技术专栏 | 关于吊舱你了解多少?
  5. 【面经】高德地图 C++ 研发 二面
  6. Projective Geometric Algebra, PGA 射影几何代数. SIGGRAPH 2019 Course Notes. Chpt. 4
  7. python numba_用 Numba 加速你的 Python 代码,性能轻松大提升
  8. Linux上安装rz、sz
  9. 节流与防抖原理及实现
  10. 健身训练后肌肉酸痛的原因