当前位置: 首页 > news >正文

idea spring 插件_怎样手动构建Spring源码?

这两天在学Spring源码,就想着自己构建一份Spring源码,这样在看源码时,就可以在源码中添加注释,那么怎么构建呢

构建Spring源码

1、安装jdk8

安装参考:https://www.cnblogs.com/chenxj/p/10137221.html

2、安装gralle

安装参考:https://blog.csdn.net/moxiaoya1314/article/details/79952937

3、源码clone地址 :

git clone --branch v5.1.3.RELEASE  https://gitee.com/Z201/spring-framework.git

下载完成后,进入项目根目录:

ef893e0456f3faa7b56efc402be13f77.png

在此项目是 执行以下命令:

gradlew :spring-oxm:compileTestJava
b1713e5bb8394daf79191bf484244923.png

4、用idea 打开Spring源码工程,在idea中安装插件kotin,重启idea.

f6b0349f861434e8b511d4fbda3d592f.png

5、把编译好的源码导入到工程中

023c4b2ec39fd0706c783b98d6df2c82.png

这样我们就可以在源码中写注释和断点调试了。

那么怎样证明自己的源码已经构建好了呢?

我们可以在Spring-context 中测试:

① 创建一个类

@Servicepublic class Person {}

② 测试类

public class Test {public static void main( String[] args ) {AnnotationConfigApplicationContext annotationConfigApplicationContext = new AnnotationConfigApplicationContext("com.wy");Person person = (Person)annotationConfigApplicationContext.getBean("person");System.out.println(person);}}

如果能输出结果,则证明已经构建好了。

如果测试过程中有以下错误

Error:Kotlin: [Internal Error] java.lang.IllegalStateException: The provided plugin org.jetbrains.kotlin.scripting.compiler.plugin.ScriptingCompilerConfigurationComponentRegistrar is not compatible with this version of compiler

解决办法:更新 kotlin 插件

把源码导入工程中

1、右键 jar包,点击Open Libary Setting

6989cb7df357d87b0e2a92ad009d6c08.png

2、找到我们自己构建的jar包

ce923b104962bc0035575c527c21c2f0.png

删除原来的jar包

6656f2d7a4e8c66b12d1510d22ef07f3.png

3、选择源码

08a7fd65df2e52c22fb81eddb020d5f7.png

删除原来的源码

到此为止,我们已经构建好和关联好源码了。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • python多继承顺序_python多继承顺序 mro
  • 我的数据库不能启动了
  • 如何用python自动改试卷_2019Python100道面试题,你会几道?
  • 2008年的第一帖
  • pl/sql中使用table()函数的例子
  • 数据科学导论python语言实现_数据科学导论:python语言实现
  • Win32病毒入门--ring3篇
  • python通过ip池爬_Python爬虫代理IP池实现方法
  • c#数字图像处理算法典型实例程序实例下载_【数字图像处理】学习halcon视觉必会的入门知识...
  • 有感于《清华计算机系旁听有感》
  • flex 间距_新品汇总|再生纤维素膜超滤管、可调间距移液器、 空气采样器、多光谱棱镜相机、高速高通量细胞计数仪...
  • 书讯 -- Pro SQL Server 2005 High Availability
  • docker 端口映射 udp_钢炮不是炮 qb钢炮特别版群晖docker手把手图文教程
  • 艰难的Shader系统(二) Node based?
  • python多进程优化_python多进程操作实例
  • 分享一款快速APP功能测试工具
  • [微信小程序] 使用ES6特性Class后出现编译异常
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
  • Javascripit类型转换比较那点事儿,双等号(==)
  • js操作时间(持续更新)
  • JWT究竟是什么呢?
  • nginx 负载服务器优化
  • ReactNativeweexDeviceOne对比
  • Traffic-Sign Detection and Classification in the Wild 论文笔记
  • vue和cordova项目整合打包,并实现vue调用android的相机的demo
  • 我的zsh配置, 2019最新方案
  • 我建了一个叫Hello World的项目
  • 用 Swift 编写面向协议的视图
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • 进程与线程(三)——进程/线程间通信
  • ​【原创】基于SSM的酒店预约管理系统(酒店管理系统毕业设计)
  • ​比特币大跌的 2 个原因
  • (delphi11最新学习资料) Object Pascal 学习笔记---第13章第1节 (全局数据、栈和堆)
  • (javaweb)Http协议
  • (TOJ2804)Even? Odd?
  • (八十八)VFL语言初步 - 实现布局
  • (第9篇)大数据的的超级应用——数据挖掘-推荐系统
  • (附源码)ssm基于微信小程序的疫苗管理系统 毕业设计 092354
  • (函数)颠倒字符串顺序(C语言)
  • (介绍与使用)物联网NodeMCUESP8266(ESP-12F)连接新版onenet mqtt协议实现上传数据(温湿度)和下发指令(控制LED灯)
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理第3章 信息系统治理(一)
  • (生成器)yield与(迭代器)generator
  • (顺序)容器的好伴侣 --- 容器适配器
  • (算法)区间调度问题
  • (转)LINQ之路
  • (转)人的集合论——移山之道
  • (转载)虚函数剖析
  • *1 计算机基础和操作系统基础及几大协议
  • .mysql secret在哪_MySQL如何使用索引
  • .NET 8.0 发布到 IIS
  • .net FrameWork简介,数组,枚举
  • .NET 中各种混淆(Obfuscation)的含义、原理、实际效果和不同级别的差异(使用 SmartAssembly)
  • .NET/C#⾯试题汇总系列:⾯向对象
  • .NET8使用VS2022打包Docker镜像