如何优雅地本地化构建Mybatis源码
一.环境准备
不耽误各位想提升技术的热血沸腾的心情,不想啰嗦半天鸡汤废话,直接进入正题。 要想构建源码,大家都知道第一步干什么?github走起。
- 下载mybatis源码:https://github.com/mybatis/mybatis-3
- 下载mybatis依赖项目parent:https://github.com/mybatis/parent
二. 源码构建
- 上面环境准备,大家会存在一个疑问,构建Mybatis源码为什么要下载parent项目呢? 答疑:clone下来mybatis源码后,可以尝试一下使用mvn clear install构建一下项目,毫无疑问肯定会报错。因为它依赖parent项目。 打开mybatis项目中的pom.xml文件验证:
<parent>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-parent</artifactId>
<version>32-SNAPSHOT</version>
</parent>
可以清晰看出它依赖父项目,可以得到解决大家心中的疑惑。
2.1 parent
parent项目clone下来之后,大家可能会想构建项目mvn clear install,小编构建源码之前也搜过好多博文,皆言parent项目能够构建成功。小编也证实了的确能够构建成功。小编也经历构建失败,由于自己办公电脑环境配置问题,导致parent项目一直构建失败,但是并没有影响小编。下面举例说明一下小编构建失败的案例。如果大家构建成功,则忽略以下几句废话。 构建失败案例:小编构建时,总是报错 Plugin org.apache.maven.wagon:wagon-ssh:3.4.0 or one of its dependencies could not be resolved;小编通过maven下载改jar包后,也是编译没有通过。于是乎,小编放弃了构建parent项目,放手大胆尝试,在mybatis源码中加入parent依赖路径,尝试一下构建,惊喜可能会迟到但不会不到,居然成功啦。后面会给大家细说如何依赖。这里先提一下,大家如何parent项目一直构建失败,可以放弃一下,大胆尝试一下。 贴一下小编构建parent项目构建失败图,希望大家避免浪费时间采坑,如果有解决的大佬留言共享。大家可以忽略,进入正题。
成功案例: 小编将跟踪源码的点滴注释会提交个人仓库,所以下班回家自己用自己的电脑构建了一下parent项目,确实成功了。 命令:mvn install 项目版本号32-SNAPSHOT,安装路径。
2.2mybatis源码
- parent依赖 上面我们已经提到好几次要依赖parent项目。所以要在pom.xml中加入parent项目依赖;
<parent>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-parent</artifactId>
<version>32-SNAPSHOT</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>
注意点:
- parent版本号32-SNAPSHOT要与自己下载的保持一致;github大家可以勾选自己所需要的版本;
直接下载master分支也是可以的,小编第一次构建源码时,经验略浅选择的就是master分支,但是构建也是成功的。
- 加入relativePath标签的内容 …/parent/pom.xml这里是相对路径哦。贴一下小编的存储路径;
- mysql驱动依赖
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.46</version>
</dependency>
- 构建mybatis源码 mvn clear install命令构建,如果构建成功,则忽略以下解释(专门为构建失败的伙伴准备的)。 如何大家使用mvn clear install命令构建源码,也是会失败的,因为mybatis依赖的parent项目构建失败,wagon-ssh 依赖失败。但是不影响我们跟踪源码。 “实践是检验真理的唯一标准”。构建失败不影响大家跟踪源码要用事实证明,小编简单在编码里写了一个demo,运行一下证明成功运行。
后面小编会专门写一篇如何demo构建跟踪源码。
白嫖无义,大家如有收获,请给小编爱心三连,激励小编更好的创作!!!
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释