本地编译mybatis的源码

前言:

一直想找开源框架的源码看一下,学习一下优秀源码,考虑到mybatis3相对来说源码规模比较小,比较容易掌握,也更适合我以后的发展,所以选择了它。
mybatis是由maven管理的java项目,所以在编译源码之前我们的开发环境需要以下元素:

  • JDK 1.6以上
  • IDEA 运行java的IDE(集成开发环境),方便打开工程,IDEA有社区版和最终版两种版本,推荐最终版,功能比较健全。社区版是阉割版,用起来比较费劲,而且不支持Java EE。
  • maven, 因为mybatis是由maven来管理包依赖的,所以本地必须安装maven,安装过程过程比较简单:maven下载地址,解压后就可以直接用了,这里要注意,我们需要设置环境变量,win7下设置环境变量的步骤我们这里不再赘述。另外我们maven本地仓库地址采用了maven的默认配置,win8下maven默认本地仓库地址为:C:\Users\1.m2\repository 。

下载源码:

开发环境保证符合条件以后,我们使用git克隆mybatis的工程源码到本地目录中(这里我找了一个带有中文注释版本的源码):

git clone https://github.com/tuguangquan/mybatis.git

当然这里你也可以不使用git,直接下载源码包解压。


进行初步编译尝试

接下来,我们进入到mybatis工程目录下,尝试执行如下命令进行编译构建:mvn clean install 。这一步其实是下载源码工程依赖、并进行编译的过程,只是借助了maven。然后我们会发现报错了:
本地编译mybatis的源码_第1张图片

这个错误是因为mybatis依赖了一个parent工程(https://github.com/mybatis/parent),mybatis项目工程的pom.xml文件中对parent工程的引用不对。


解决parent依赖问题

所以我们需要将paren工程克隆到本地目录中:git clone https://github.com/mybatis/parent.git ,然后先进入parent工程下进行mvn clean install 将parent工程依赖的包下载下来、并保证parent工程编译通过,这步不会出现问题,在编译的输出信息中我们会看到parent工程的版本号,如图所示:
本地编译mybatis的源码_第2张图片 这个版本号我们需要填写到mybatis工程pom.xml文件parent依赖的version标签处,如下文。
接下来修改mybatis工程的pom.xml文件中标识parent依赖的地方:

  <parent>
    <groupId>org.mybatisgroupId>
    <artifactId>mybatis-parentartifactId>
    <version>28-SNAPSHOTversion>
    <relativePath>../parent/pom.xmlrelativePath>
  parent>

这里需要注意一点:我们引入的paren的28-SNAPSHOT 版本号需要与我们下载的parent工程版本号一致,也就是我们上面图片上找到的版本号。另外我们要注意:../parent/pom.xml 这里的路径要换成自己存储parent工程的相对路径。


解决部分插件版本问题:

进行完上文的修改后,按道理来讲mybatis工程是可以mvn clean install 成功的,但是我们执行命令后却报错:
本地编译mybatis的源码_第3张图片
告诉我们部分插件没有指定的相应的版本号,出于工程的稳定性考虑需要对使用的插件指定其版本号,并给出了合适的版本号,如图红色方框中的文字。我们只要在mybatisg工程的pom.xml文件中找到相对应的插件处添加$NUM 标签即可, $NUM代表具体的版本号。到这我们再执行mvn clean install 指令就可以将mybatis工程构建成功了。


在IDEA中打开工程

这时我们只需要使用IDEA import project 打开mybatis工程,然后在IDEA里面进行编译、甚至运行main函数的操作了。

你可能感兴趣的:(web)