咱们读源码的过程中,为了证实一些猜测可能要批改某段代码,而且重构代码是进步代码能力的十分无效的伎俩。本篇文章来说一下如何搭建Mybatis源码环境。

一、下载源码并复制到本地我的项目
能够从官网去下载,如果是用idea能够关上任意一个Mybatis的.class,比方点击Resources.getResourceAsStream办法,右上角会有提醒,点击download sources下载后,找到maven仓库的jar包目录,此时会多出一个源码的jar包,如下图所示:

解压后复制到我的项目的java目录下,如下图所示:

其中的last.soul目录是我自定义写的代码,能够疏忽。

二、将须要下载的jar包增加到pom文件
关上Mybatis的class文件中的pom文件,将其中所有的dependency(能够不复制scope为test的dependency)复制到本地我的项目中的pom,最初在去掉mybatis的dependency,因为源码环境曾经搭建结束,不用再应用mybatis的jar包。
三、运行上篇文章中的测试用例正确无误

tips:**

在第二步中有一个知识点,dependency下有一个optional属性。这个属性为false示意强依赖,即如果A我的项目依赖x的jar包optional属性为false,B我的项目依赖了A我的项目,那么B我的项目会主动下载x.jar,optional属性默认值即为false。反之如果为true,B我的项目不会主动下载x.jar,编译也不报错,然而如果调用了x.jar中的办法就会报类找不到的异样。也就是说不调用x.jar办法能够失常应用,否则就会报错,要手动在B我的项目中引入x.jar的dependency。
在mybatis的源码的pom文件中有很多optional为true的jar包,比方ognl,cglib等。所以这步中即便不去掉mybaits的dependency,也要把ognl,cglib等的dependency手动引入到我的项目中。