一 Spiring源码搭建

1.1 gradle安装

  • 官网下载:https://gradle.org/install/; 加速版:https://services.gradle.org/distributions/

  • 添加 GRADLE_HOME 环境变量,指向Gradle解压目录;

  • 配置Path环境变量: %GRADLE_HOME%\bin

  • 打开命令行 输入命令:gradle -v,显示版本号等信息说明配置成功;

先不要下载安装,看后面,耐心看完本节所有内容再想要不要全局安装;

1.2 下载源码

github: https://github.com/spring-projects/spring-framework

知识追寻者下载的是spring源码5.0版本, gradle 6.5.1, jdk1.8;

由于github下载网速很慢,可以登陆码云进行folk一份github的spring源码到自己仓库下载会很快,如果你比较懒,知识追寻者也找到一个仓库如下;

https://gitee.com/mirrors/Spring-Framework

1.3导入 IDEA

  1. 打开 IDEA
  2. 选择Improt Project,指向spring源码目录;
  3. Improt Project  from Existing Sources ;
  4. 选择 build.gradle;
  5. 配置gradle构建(如果不想全局配置这步省略,打开工程后会自动下载gradle)

「注意」:idea 需要配置 gradle 关闭 offline 模式 ;由于2019版本在setting中无法找到 而是在右侧的视图中;


1.4  源码编译

有的小伙伴会下错gradle版本,那真是卡几天都无法解决的是,源码编译无法通过,直接放弃啊,知识追寻者也卡了一会,看官方说明才知道咋回事;

「方式一」

「在源码项目的当前目录命令行输入如下命令会自动下载gradle, 直接将链接复制出来使用迅雷下载,然后配置gradle,在 右侧gradle视图中找到spring-oxm项目的compileTestJava双击即可;」


gradlew :spring-oxm:compileTestJava

「方式二」

也可以不配置本地全局gradle,你网络好就直接在「命令行」中使用如上命令,idea会自动进行局部配置;

耐心等待一段时间进行源码编译;然后再用idea打开工程,构建成功如下


1.5替换仓库

工程目录下找到 build.gradle;在如下代码中添加一行 阿里仓库,提升下载依赖速度;

 repositories {   mavenCentral()   maven { url "https://repo.spring.io/libs-spring-framework-build" }   maven { url "https://repo.spring.io/snapshot" } // Reactor and RSocket  }

阿里云仓库

maven { url "http://maven.aliyun.com/nexus/content/groups/public/"}

1.6 去除 spring-aspect 加载

如果加载到后面发现 spring-aspect 模块依赖报错,

第一种方案 直接点击该工程 右键 -> unload module,或者使用 exclude module 排除模块;

第二种方案:安装 aspect需要手动安装

https://www.eclipse.org/aspectj/downloads.php

关于 安装请看下面链接,因为知识追寻者这边没报错;

https://blog.csdn.net/a704397849/article/details/102754505

1.7 创建gradle测试工程

File–>New–>Modul–>Gradle–>Java–>Next


打开测试工程的build.gradle文件添加 依赖 beas 和 context;

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

新建用户实体

public class SysUser {

 private String username;

 private String password;

 public SysUser() { }

 public SysUser(String username, String password) {  this.username = username;  this.password = password; } // 省略set/get  toString} 

新建配置类

/** * @Author lsc *  */@Configurationpublic class SysConfig {

 @Bean public SysUser sysUser(){  return new SysUser("zszxz","123"); }}

新建主类测试

/** * @Author lsc *  */public class ZszxzMain {

 public static void main(String[] args) {  // 获取容器  ApplicationContext ac =new AnnotationConfigApplicationContext(SysConfig.class);  // 获取 bean  SysUser user = (SysUser) ac.getBean("sysUser");  System.out.println(user.toString()); }}

build 一下 测试工程,然后执行主类,一般情况下会报错看后续内容

1.8 去除风格校验

如果报代码格式错误,找到 src 下checkstyle里面checkstyle.xml文件 ,去除掉 里面的风格校验;

<?xml  version="1.0"?>module PUBLIC "-//Checkstyle//DTD Checkstyle Configuration 1.3//EN" "https://checkstyle.org/dtds/configuration_1_3.dtd"><module name="com.puppycrawl.tools.checkstyle.Checker">module>

1.9 kotlin报错

如果 kotlin 1.3 版本太低,无法支持新的语法,找到 idea 的kotlin 语言配置,升级到 1.4;知识追寻者编译第一次编译出现这种问题,第二次没有;很魔幻的事情,建议大家不要使用idea 2019.2 版本,坑比较大;


重点:网速很重要,如果连wifi不建议进行编译,知识追寻者亲测用wifi发了2天没搞定!!!后来换了宽带非常快;

1.20 核心包编译出错

如果spring-core 核心包下 jrf 包(org.springframework.core.metrics.jfr)里面的类出错一种办法直接注释掉出错类,

第二种:可能是jdk不兼容,更换jdk;

1.20 编译成功

如果最后没报错,并且主类执行成功输出如下;

> Task :zszxz-test:ZszxzTest.main()SysUser{username='zszxz', password='123'}

idea 新建spring clound 项目_手把手教你spring源码搭建相关推荐

  1. stm32l0的停止模式怎么唤醒_手把手教你怎么利用旧电脑搭建NAS组建自己的黑群晖...

    手把手教你怎么利用旧电脑搭建NAS组建自己的黑群晖 Synology 群晖科技(Synology )创立于 2000 年,自始便专注于打造高效能.可靠.功能丰富且绿色环保的 NAS 服务器,是全球少数 ...

  2. springboot 创建地址_手把手教你Spring Boot入门开发

    前言:springboot如今在技术领域非常流行,不仅能够简化web项目的开发,提升开发效率,而且也是面试官最喜欢的问题之一,今天笔者对springboot做一个简要入门实例讲解,抛砖引玉. 1. S ...

  3. maven 创建java项目_手把手教你创建Java Maven依赖项目

    本教程介绍了如何通过MyEclipse Web项目,或者其他任何Maven项目来创建一个通用的Java/Maven项目.这些步骤包括基础的创建和使用Maven依赖.您将学习到: 创建一个Maven实用 ...

  4. python开发个人博客_手把手教你用 Python + Flask 搭建个人博客

    Python 的语言特性使得自身编写 Web 框架极其容易,现在已经有上百种用 Python 编写的 Web 开发框架,其中用户量最大的两个就是 Django 和 Flask. Django 和 Fl ...

  5. 代币转账_手把手教你从源代码开始搭建多节点以太坊私链(五)部署智能合约及代币发行...

    一.安装以太坊合约编译环境 安装solc 智能合约代码的编译可以通过第三方平台或者软件.不过,为了安全起见,还是搭建自己的编译器比较好.(But be aware that if the compil ...

  6. linux npm安装_手把手教你appium框架的搭建—linux

    总体来说,分为以下几步: 1.安装jdk 2.安装node和npm 3.安装android sdk 4.安装appium 5.安装pip及appium-python-client 以下是脚本 #!/b ...

  7. 软件_手把手教vscode配置c++,python开发环境

    原创:软件_手把手教vscode配置c++,python开发环境 之前主用Python作为项目开发语言,将项目迁移到arm边缘盒子上后发现arm的cpu不给力,软件速度低于预期,所以计划将部分程序改为 ...

  8. 简单个人博客系统java web_JavaWeb个人博客项目:手把手教你实现博客后台系统之登录与注册...

    JavaWeb个人博客项目:手把手教你实现博客后台系统之登录与注册 发布时间:2020-07-17 17:10阅读:( )字号: 大 中 小 后台系统的所有界面图以及之前的准备工作欢迎看我之前的博文& ...

  9. 手把手教你从0开始搭建一个vue项目(完结)

    前言 上一节webpack实战之(手把手教你从0开始搭建一个vue项目)最后我们完成了css样式的配置: webpack.config.js: const path = require("p ...

  10. 手把手教你直播平台怎么搭建

    手把手教你直播平台怎么搭建 后端项目初始化 1.全局安装express脚手架 额,这个应该是属于准备工作的.给忘记了,那就凑合放在这里吧,别打我,我知道错了,但我就是不改[狗头保命] cnpm ins ...

最新文章

  1. struts.xml配置文件结构
  2. 科大星云诗社动态20210502
  3. (转)Asp.Net生命周期系列一
  4. 宝塔面板服务器ip地址修改_「网站」快速搭建服务器环境及网站
  5. 白盒测试-条件覆盖-短路陷阱
  6. java mapper.readtree_java - 杰克逊的readValue和readTree:何时使用哪个? - 堆栈内存溢出...
  7. 【Python】【数据库】
  8. 高性能 Socket 组件 HP-Socket v3.1.3 正式发布
  9. 程序在Linux下后台运行,进程查看及终止
  10. 谷歌智能助理能同时听懂两种语言 超过同类产品
  11. Dubbo集成Spring与Zookeeper实例
  12. 刷机常识,双清,BL,REC,TWRP
  13. 字体推荐——sarasa更纱黑体
  14. 在你的ipad上使用Vscode撸代码(快速操作向)
  15. win10此计算机无法创建家庭组,教你Win10专业版无法创建家庭组怎么办?
  16. (18) 基于时空多图卷积网络的网约车需求预测
  17. 大班韵律机器人视频_大班韵律活动“机器人—星球漫步”
  18. Flask+BootStrap+SQLite+ECharts编写的教学问卷调查系统
  19. Linux查主板槽位使用情况,linux下查看主板内存槽与内存信息
  20. 资本资产定价模型简介-多因子寻找Alpha统计套利

热门文章

  1. 实验四 用信号量解决进程互斥与同步问题 生产者与消费者问题模拟
  2. Rainbow Tables
  3. CCleaner v5.73.8130 发布,系统清理工具
  4. 第一节:Create React App
  5. 使用mybatis-generator自动生成代码(附GitHub下载地址)
  6. .NET Core 获取 Request/Headers 等信息
  7. sqlserver CASE WHEN语句示例
  8. Laravel使用腾讯云COS服务
  9. 热烈庆贺泰山字体引擎取得关键性突破
  10. 软件基本功:变量局部化