咱们读源码的过程中,为了证实一些猜测可能要批改某段代码,而且重构代码是进步代码能力的十分无效的伎俩。本篇文章来说一下如何搭建 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 手动引入到我的项目中。