Mybatis源码学习系列之搭建源码阅读环境

1. 实验环境

  • jdk1.8.0_171
  • apache-maven-3.5.4
  • IntelliJ IDEA 2018
  • mybatis-parent 31
  • mybatis-3.5.4

2. 下载源码

先在官方GitHub下载对应的代码

git clone https://github.com/mybatis/parent
git clone https://github.com/mybatis/mybatis-3

在这里插入图片描述

mybatis3使用3.5.4版本,代码只能去归档的Tags里重新下载到local branch

在这里插入图片描述
mybatis3.5.4里查看maven配置,知道mybatis3.5.4依赖的mybatis-parent版本是31
在这里插入图片描述
所以,同样,在parent工程里找到对应的tab,切换到local branch

在这里插入图片描述

3. 构建mybatis-parent工程

因为mybatis-3.5.4工程依赖于mybatis-parent工程,所以需要先用maven构建好,使用maven命令

mvn install -DskipTests=true -Dmaven.test.skip=true -Dlicense.skip=true

在这里插入图片描述

可能会有如下的报错提示,网上搜索资料知道,maven-gpg-plugin是maven上传到仓库进行数字签名的插件,初步猜测可能是因为maven版本和源码版本不兼容

Failed to execute goal org.apache.maven.plugins:maven-gpg-plugin:1.6:sign (sign-artifacts)

因为本文只是来学习框架源码,所以可以选择先跳过这个插件编译
在这里插入图片描述
修改配置后,mybatis-parent就可以构建成功
在这里插入图片描述

4. 构建mybatis-3.5.4工程

构建好mybatis-parent工程后,同理maven install就可以构建好工程,构建的时间会稍微久一点
在这里插入图片描述
为了和原本的mybatis3.5.4版本区分,可以修改一下版本号
在这里插入图片描述

5. 新建mybatis测试工程

新建一个mybatis测试工程,引入刚才自定义版本号的mybatis-3.5.4-snapshot

在这里插入图片描述
可是在测试工程里,我们找个源码文件,发现是不可以编辑的,所以需要设置一下源码,选择File->Project Structure->Libraries,选择maven:org.mybatis:mybatis3.5.4-snapshot,选择sources,再点击加号,将对应的本地代码加进行,然后就可以在源码里写上自己的注释啦
在这里插入图片描述

如果出现相关源码查找不到的提示,可以如下操作File->Invalidate Caches and Restart,重启IDEA即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/567030.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【数据库教程】Navicat和在线phpMyAdmin如何连接远程服务器

文章目录 NavicatphpMyAdmin来源 有很多工具可以连接数据库,这里介绍两种,自行选择一种使用即可 Navicat 1、打开Navicat 2、点击连接,选择MySQL 3、输入数据库信息后点击测试连接(数据库信息请联系我) 4、点击确…

Java进阶-Stream流

概述 在Java8中,得益于lambda所带来的函数式编程,引入了一个全新的Stream流的概念目的:用于简化集合和数组操作的api 案例 需求:创建一个集合存储多个字符串元素,将集合中所有以“z”开头的元素存储到新的集合中&am…

C++ | Leetcode C++题解之第44题通配符匹配

题目&#xff1a; 题解&#xff1a; class Solution { public:bool isMatch(string s, string p) {auto allStars [](const string& str, int left, int right) {for (int i left; i < right; i) {if (str[i] ! *) {return false;}}return true;};auto charMatch []…

LPA算法简介

1. 背景 标签传播算法(Label Propagation Algorithm)是一种基于图的半监督学习方法&#xff0c;其基本思路是用已标记节点的标签信息去预测未标记节点的标签信息。 2. 算法流程 1. 为每个节点随机的指定一个自己特有的标签&#xff1b; 2. 逐轮刷新所有节点的标签&#xff0…

设计模式(四):单例模式

设计模式&#xff08;四&#xff09;&#xff1a;单例模式 1. 单例模式的介绍2. 单例模式的类图3. 单例模式的实现3.1 懒汉式&#xff08;线程不安全&#xff09;3.2 懒汉式&#xff08;线程安全&#xff09;3.3 饿汉式3.4 静态内部类3.5 枚举 1. 单例模式的介绍 单例模式&…

SQL-DML数据操纵语言(Oracle)

文章目录 DML数据操纵语言常见的字段属性字符型字段属性char(n)varchar2(n)/varchar(n) 数值型字段属性number([p],[s]int 日期型字段属性DATEtimestamp 如何查看字段属性增加数据INSERT快捷插入 删除数据DELETE修改数据UPDATE DML数据操纵语言 定义 是针对数据做处理&#xf…

信息系统项目管理49个过程、查看工具与技术!最好用的工具

高项【浏览器打开&#xff0c;用于默写49个过程、查看工具与技术】.html 下载html后建议使用Edge、chrome或者火狐浏览器打开   查看工具与技术&#xff1a;鼠标左键单击管理活动&#xff1b;关闭工具与技术&#xff1a;点击工具与技术外面退回 1、点击【开始默写】按钮&…

在国企上班,有必要考软考吗?

现在很多在私企工作的朋友都会参加软考&#xff0c;国企员工更是如此。软考可以以考代评&#xff0c;传统的职称获取需要两步&#xff0c;第一步是评审&#xff0c;第二步是单位聘任。而通过软考取得证书就可以省去第一步&#xff0c;只需获得单位聘任即可享受相应的职称福利。…

Ventus(承影):基于RISC V的开源GPGPU

Ventus&#xff08;承影&#xff09;&#xff1a;基于RVV的开源GPGPU 清华大学集成电路学院dsp-lab的承影RVV GPGPU设计文档。 整体目标 提供一个开源的基于RVV的GPGPU实现方案&#xff0c;并给出软件映射方案、指令集&#xff08;支持的指令及特性、添加的自定义指令&#xf…

路由引入,路由过滤,路由策略实验

1&#xff0c;配置IP地址 R1&#xff1a; [R1]dis ip interface brief Interface IP Address/Mask Physical Protocol GigabitEthernet0/0/0 100.1.1.1/24 up up LoopBack0 …

OpenHarmony实战开发-如何实现tabContent内容可以在tabBar上显示并且tabBar可以响应滑动事件的功能。

介绍 本示例实现了tabContent内容可以在tabBar上显示并且tabBar可以响应滑动事件的功能。 效果图预览 使用说明 1.点击播放按钮进行视频播放&#xff0c;按住进度条按钮和进度条下方区域可以拖动进度条&#xff0c;更改视频播放进度。 实现思路 原生的Tabs组件&#xff0c…

IP地址SSL证书的申请流程——五步轻松实现https

没有域名或者不方便提供域名&#xff0c;只有IP地址也可以申请SSL证书&#xff0c;为IP地址申请ssl证书是需要开放443或者80端口&#xff0c;一般开放几分钟用来验证IP管理权即可&#xff01; 具体流程如下 IP地址证书 ssl证书点击这里直接申请 https://www.joyssl.com/certif…

鸿蒙应用开发之Web组件6

前面学习怎么样设置Web界面显示不同的颜色配置,这种适合不同时间来设置,比如白天要亮一些,晚上要暗一些。现在来学习使用Web组件选择文件文件列表的功能。 这个功能主要就是使用在Web打开一个页面,然后有上传文件的按钮,比如下面的界面: 当用户点击选择文件按钮时,就会…

nvidia-smi 输出内容详解

一、nvidia-smi 介绍 nvidia-smi&#xff08;NVIDIA System Management Interface&#xff09;是一种命令行实用程序&#xff0c;主要用于监控和管理NVIDIA GPU&#xff08;图形处理器&#xff09;的状态和性能。它提供了一个简单而强大的方式来获取有关GPU的实时信息&#xf…

javaWeb项目-财务管理系统功能介绍

项目关键技术 开发工具&#xff1a;IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7 框架&#xff1a;ssm、Springboot 前端&#xff1a;Vue、ElementUI 关键技术&#xff1a;springboot、SSM、vue、MYSQL、MAVEN 数据库工具&#xff1a;Navicat、SQLyog 1、Springboot框架 …

管理集群工具之LVS

管理集群工具之LVS 集群概念 将很多机器组织在一起&#xff0c;作为一个整体对外提供服务集群在扩展性、性能方面都可以做到很灵活集群分类 负载均衡集群&#xff1a;Load Balance高可用集群&#xff1a;High Availability高性能计算&#xff1a;High Performance Computing …

面向对象练习坦克大兵游戏

游戏玩家&#xff08;名称&#xff0c;生命值&#xff0c;等级&#xff09;&#xff0c;坦克&#xff0c;大兵类&#xff0c;玩家之间可以相互攻击&#xff0c;大兵拥有武器&#xff0c;用枪弹和反坦克炮弹&#xff0c;造成攻击不同&#xff0c;坦克攻击值固定&#xff0c;请设…

Java 源码-多级时间轮TimingWheel

多级时间轮TimingWheel 一、时间轮是什么 类似现实中的钟表&#xff0c;由多个环形数组组成&#xff0c;每个环形数组包含20个时间单位&#xff0c;表示一个时间维度&#xff08;一轮&#xff09;&#xff0c;如&#xff1a;第一层时间轮&#xff0c;数组中的每个元素代表1m…

梯度,hesse阵与Jacobi矩阵

分清楚三个量的含义和计算方法。 梯度 表征的是一个列向量&#xff0c;是相对于某个方向而言的&#xff0c;但是某个方向上可能有多个变量&#xff0c;所以梯度不是简单的直接求偏导&#xff0c;并且说了&#xff0c;它是一个列向量&#xff0c;所以&#xff0c; 我们设 f : …

海外仓系统能做什么?提升仓库盈利能力,不再低效经营!

海外仓管理系统和机械设备不同&#xff0c;这句话看似有点矛盾&#xff0c;但是还真就是这么回事儿。 当机械设备出现故障的时候&#xff0c;你会明确的知道他无法运转&#xff0c;已经影响到你的生产效率了。但是海外仓系统不会&#xff0c;它看似还可以运转&#xff0c;但是…