美文网首页Java服务端面试
Mybatis源码之美:1.2 下载Mybatis源码并导入至I

Mybatis源码之美:1.2 下载Mybatis源码并导入至I

作者: 吃竹子的程序熊 | 来源:发表于2020-03-12 21:15 被阅读0次

    下载Mybatis源码并导入至IDE工具

    下载Mybatis的源码

    打开浏览器输入网址https://github.com/mybatis/mybatis-3即可访问Mybatis在Github中的仓库。

    截止到目前为止,mybatis的最新版本是3.5.3-SNAPSHOT,但是因为我之前学习过程中使用的版本是3.5.0-SNAPSHOT,因此这篇笔记还是针对3.5.0-SNAPSHOT来写。

    依赖环境的安装

    • jdk(1.8+)

      因为mybatis3使用了JDK1.8的一些新特性,所以此处需要使用JDK 1.8+的版本。

      现在通过官网下载 JDK8+ 的版本需要登录。

      • 获取jdk

      点击进入Oracle JDK下载界面

      Windows 点击下载Oracle JDK 8u181

      $session = New-Object Microsoft.PowerShell.Commands.WebRequestSession;
      $cookie = New-Object System.Net.Cookie;
      $cookie.Name = "oraclelicense";
      $cookie.Value = "accept-securebackup-cookie";
      $cookie.Domain = ".oracle.com";$session.Cookies.Add($cookie);
      iwr  -Method GET -WebSession $session -uri https://download.oracle.com/otn-pub/java/jdk/8u201-b09/42970487e3af4f5aa5bca3f542482c60/jdk-8u201-linux-x64.tar.gz  -OutFile jdk.tar.gz
      

      linux 点击下载Oracle JDK 8u181

      wget  -nc --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz
      

      mac 点击下载Oracle JDK 8u181

    • maven

      • windows

        • 下载Maven

          点击进入maven的下载页面

          点击下载maven TAR GZ

        • 解压安装包,并进行简单的配置

          点击下载解压工具:7zip

          解压获取到的maven压缩文件,得到名为apache-maven-3.6.1的目录,根据自己的需要将其移动到指定的文件夹内,其内部文件大致如下:

        内部文件

        进入conf目录,简单编辑其中的settings.xml文件:

        <?xml version="1.0" encoding="UTF-8"?>
        <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
        <!--
        配置maven本地仓库存储地址,尽量配置该地址,避免下载的jar包存放在C盘内。
        如果是非windows系统,根据自己的需求变更该参数。
        -->
        <localRepository>F:\data\repository</localRepository>
        <mirrors>
        <!--
        配置阿里云中央仓库,提高下载jar包的速度
        -->
        <id>nexus-public-snapshots</id>
        <mirrorOf>*</mirrorOf>
        <mirrorOf>public-snapshots</mirrorOf>
        <url>http://maven.aliyun.com/nexus/content/repositories/snapshots/</url>
        </mirror>
        </mirrors>
        </settings>
        
        • 添加环境变量

          这一步根据自己的需要决定是否添加到环境变量。

          首先回到maven工程的根目录:

        maven工程的根目录
        按住键盘的shift键的同时,点击鼠标右键,选择在此处打开Powerschell窗口

        在弹出的Powerschell窗口中,执行下列命令(直接一次性复制下列四条命令执行即可):

        $command='-noprofile -command ' + "`$current=`'$pwd`'" + ';[environment]::SetEnvironmentVariable(""""MVN_HOME""",$current,""""machine"""");'
        
        Start-Process -FilePath powershell.exe   -ArgumentList $command  -Verb runas;
        
        $command='-noprofile -command [environment]::SetEnvironmentVariable(""""path""",$env:path+"""";%MVN_HOME%\bin;"""",""""machine"""");'
        
        Start-Process -FilePath powershell.exe   -ArgumentList $command  -Verb runas;
        

        命令执行完毕,如果没有报错,重新开启一个Powershell窗口执行mvn -v将会打印出该maven工程的版本信息。

      • linux

          wget -nc http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.1/binaries/apache-maven-3.6.1-bin.tar.gz
          tar -zxvf apache-maven-3.6.1-bin.tar.gz
          #配置环境变量
          mv apache-maven-3.6.1 /usr/local/maven
          maven_env_exist=$(awk '{print}' /etc/profile |grep "#MAVEN_SETTINGS@JPANDA" &>>/dev/null;echo $?)
          if [ $maven_env_exist -gt 0 ]
            then
              echo "
          #MAVEN_SETTINGS@JPANDA
          export M2_HOME=/usr/local/maven
          export PATH=\$M2_HOME/bin:\$PATH
          #MAVEN
          ">>/etc/profile
          fi
          ln -s /usr/local/maven/bin /usr/local/bin/maven
          source /etc/profile
        

        进入/usr/local/maven/conf目录,简单编辑其中的settings.xml文件:

        <?xml version="1.0" encoding="UTF-8"?>
        <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
        <!--
        配置maven本地仓库存储地址,尽量配置该地址,避免下载的jar包存放在C盘内。
        如果是非windows系统,根据自己的需求变更该参数。
        -->
        <localRepository>/data/maven/repository</localRepository>
        <mirrors>
        <!--
        配置阿里云中央仓库,提高下载jar包的速度
        -->
        <id>nexus-public-snapshots</id>
        <mirrorOf>*</mirrorOf>
        <mirrorOf>public-snapshots</mirrorOf>
        <url>http://maven.aliyun.com/nexus/content/repositories/snapshots/</url>
        </mirror>
        </mirrors>
        </settings>
        

        输入命令mvn -v查看当前maven工程的版本信息。

    • git

      • windows

        选择安装目录

        点击Next按钮进入组件选择界面。

        组件选择界面

        根据自己的需求选择组件,这里我除了最后一个更新检查Check daily for Git for windows updates之外全部选中。

        点击Next按钮,选择对应的开始菜单文件夹。

        选择对应的开始菜单文件夹

        这里我是用默认的Git目录,点击Next按钮,进入选择Git编辑器界面。

        选择Git编辑器界面

        这里我选择使用VIM,之后一路点击Next继续。

        Next Next Next Next Next Next

        最后点击Install按钮完成最后的安装操作。

      • linux

        执行下列命令即可完成安装:

        yum install -y git
        

    获取Mybatis源码并导入至IDE工具

    • step1: 获取mybatis源码

      这里获取Mybatis的源码有两种方式,一种是通过github获取Mybatis官方源码,一种是通过gitee获取翻译成中文的源码。

      在这里两种源码在代码层面上是一致的,区别仅限于我为gitee上的源码添加了大量中文注释。

      在自己的工作目录下执行git命令克隆Mybatis源码(二选一):

      • 一:
        通过github获取Mybatis官方源码,鉴于国内访问github太慢,我在giteefork了mybatis源码,因此下面两个命令得到的代码是一样的。
      git clone -b mybatis-3.5.0 https://github.com/mybatis/mybatis-3.git
      或者
      git clone -b mybatis-3.5.0 https://gitee.com/topanda/mybatis-3-original.git
      

      该命令的作用是克隆标签为mybatis-3.5.0的Mybatis源码到当前目录下。

      • 二: 通过gitee获取翻译成中文的源码
      git clone https://gitee.com/topanda/mybatis-3.git
      

      该命令的作用是克隆Mybatis源码到当前目录下。

      此时在我们的工作目录下应该多了一个名为mybatis-3-original或者mybatis-3的文件目录。

      目录的名称取决于使用的git命令,如果是通过gitee获取的英文源码,则名称为mybatis-3-original,否则为mybatis-3.

    • step2:导入源码到IDE工具

      在获取到mybatis的源码之后我们可以将该源码导入到自己常用的IDE工具内,因为笔者常用IntelliJ IDEA,所以这里建议使用IntelliJ IDEA,当然你依然可以根据自己的喜好,选择自己喜欢的工具。

      • 将工程导入至IDEA

      此处使用的IntelliJ IDEA版本是IntelliJ IDEA 2018.2 (Ultimate Edition)

      点击IDEA左上角的File按钮,然后选择Open按钮。

      选择Open按钮

      之后在弹出框内选择Mybaits源码所处的目录,点击OK即可将源码导入至IDEA中。

      将源码导入至IDEA中

      导入源码之后,等待IDEA编译完成即可。

      • 将工程导入至Eclipse

      此处使用的Elipse版本是Elipse Photon Release (4.8.0).

      点击Eclipse左上角的File按钮,选择弹出的Open Projcets From File System.

      Open Projcets From File System

      在弹出框内点击Directory按钮,选择Mybaits源码所处的目录,点击确定。

      选择Mybaits源码所处的目录
      等待Eclipse校验通过,点击左下角的Finish按钮,即可完成导入工作。
      完成导入工作

      此时我们在项目根目录下执行mvn clean compile命令即可完成源码的编译工作。

    修改POM文件,添加依赖便于后续使用

    修改项目根目录下的pom.xml文件,在其dependencies代码块中添加下列代码:

    <!-- MySQL相关 -->
      <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
      <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.17</version>
        <scope>test</scope>
      </dependency>
      <!--添加lombok依赖-->
      <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
      <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.6</version>
        <scope>provided</scope>
      </dependency>
      <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
      <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>fastjson</artifactId>
        <version>1.2.56</version>
        <scope>test</scope>
      </dependency>
    

    这里唯一需要注意的就是mysql-connector-java的版本号需要和使用的Mysql数据库保持一致。

    添加一个新的单元测试包,用于后续的学习使用

    mybatis工程的src/test/java/org/apache/目录下,新建一个名为learning的子包,该包将会用于存放后期学习使用的测试类。

    调整日志级别

    修改mybatis工程src/test/java/resources/目录下的log4j.properties配置文件。

    ### 全局日志级别为ERROR
    log4j.rootLogger=ERROR, stdout
    ### mybatis中的日志级别为INFO级别
    log4j.logger.org.apache.ibatis=INFO
    ### 自定义学习使用的包日志级别为DEBUG,降低级别为DEBUG目的是为了打印SQL内容
    log4j.logger.org.apache.learning=DEBUG
    
    log4j.logger.org.apache.ibatis.session.AutoMappingUnknownColumnBehavior=WARN, lastEventSavedAppender
    
    ### Console output...
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
    
    log4j.appender.lastEventSavedAppender=org.apache.ibatis.session.AutoMappingUnknownColumnBehaviorTest$LastEventSavedAppender
    
    

    关注我,一起学习更多知识

    关注我

    相关文章

      网友评论

        本文标题:Mybatis源码之美:1.2 下载Mybatis源码并导入至I

        本文链接:https://www.haomeiwen.com/subject/fhtgjhtx.html