zoukankan      html  css  js  c++  java
  • 【Mybatis】MyBatis源码编译

    环境准备

    • Maven:3.6.3
    • Jdk:1.8.0_181
    • idea

    1、下载mybatis源码

      官网地址:https://github.com/mybatis/mybatis-3

      选择需要的版本下载。

      

      本例下载的是 mybatis-3-mybatis-3.5.1,下载完后解压。打开pom.xml,查看mybatis的依赖的父工程版本

    2、下载载mybatis-parent源码

      选择mybatis对应的mybatis-parent版本,本例版本是 mybatis-parent-31

      官网地址:https://github.com/mybatis/parent

      

    3、源码导入Idea

      在Idea中新建一个空项目,将 mybatis 、 mybatis-parent 都放到空项目下,并导入模块

      

    4、编译mybatis-parent源码,编译mybatis源码

    1、编译mybatis-parent项目

      切换mybatis-parent项目: 

      命令:mvn clean install

    2、编译mybatis项目

      切换mybatis项目(可以修改一下版本号,修改成自己特有的版本,方便区分): 

      修改mybatis版本(3.5.1-MY)。避免与官网依赖相同版本

      命令:mvn install -Dmaven.test.skip=true

      注意:可能pdf报错

      Failed to execute goal org.apache.maven.plugins:maven-pdf-plugin:1.4:pdf (pdf) on project mybatis: Error during document generation: Error parsing /Users/h__d/Documents/workspace-idea/mybatis-3.5.1/mybatis-3-mybatis-3.5.1/target/pdf/site.tmp/xdoc/getting-started.xml: Error parsing the model: only whitespace content allowed before start tag and not ufeff (position: COMMENT seen ...rning permissions and limitations under the License. --> ufeff... @18:2)

      解决:将maven-pdf-plugin插件注释,再次进行编译安装

    <!--
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-pdf-plugin</artifactId>
    </plugin>
    --> 

    5、测试使用源码

    1、新建maven模块项目test-mybatis-my

      参考:【Mybatis】MyBatis快速入门(一)

      引入自己编译的mybatis版本(3.5.1-MY),完整pom.xml,如下:

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <project xmlns="http://maven.apache.org/POM/4.0.0"
     3          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     4          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     5     <modelVersion>4.0.0</modelVersion>
     6 
     7     <groupId>org.example</groupId>
     8     <artifactId>test-mybatis-my</artifactId>
     9     <version>1.0-SNAPSHOT</version>
    10 
    11     <properties>
    12         <maven.compiler.source>8</maven.compiler.source>
    13         <maven.compiler.target>8</maven.compiler.target>
    14     </properties>
    15 
    16     <dependencies>
    17         <dependency>
    18             <groupId>org.mybatis</groupId>
    19             <artifactId>mybatis</artifactId>
    20             <version>3.5.1-MY</version>
    21         </dependency>
    22 
    23         <!-- mysql -->
    24         <dependency>
    25             <groupId>mysql</groupId>
    26             <artifactId>mysql-connector-java</artifactId>
    27             <version>8.0.13</version>
    28         </dependency>
    29 
    30         <dependency>
    31             <groupId>junit</groupId>
    32             <artifactId>junit</artifactId>
    33             <version>RELEASE</version>
    34             <scope>compile</scope>
    35         </dependency>
    36 
    37 
    38         <dependency>
    39             <groupId>ognl</groupId>
    40             <artifactId>ognl</artifactId>
    41             <version>3.2.15</version>
    42             <scope>compile</scope>
    43             <optional>true</optional>
    44         </dependency>
    45 
    46         <dependency>
    47             <groupId>org.javassist</groupId>
    48             <artifactId>javassist</artifactId>
    49             <version>3.27.0-GA</version>
    50             <scope>compile</scope>
    51             <optional>true</optional>
    52         </dependency>
    53     </dependencies>
    54 
    55 </project>
    View Code

    2、使用测试

      注意:可能报错,如下:

      

      解决:引入依赖

    <dependency>
        <groupId>ognl</groupId>
        <artifactId>ognl</artifactId>
        <version>3.2.15</version>
        <scope>compile</scope>
        <optional>true</optional>
    </dependency>
    
    <dependency>
        <groupId>org.javassist</groupId>
        <artifactId>javassist</artifactId>
        <version>3.27.0-GA</version>
        <scope>compile</scope>
        <optional>true</optional>
    </dependency> 

      之后便能正常测试完成,使用mybatis查出数据

  • 相关阅读:
    选择排序的C、C++实现
    冒泡排序的C、C++实现
    Node.js使用UDP通讯
    Node.js使用TCP通讯
    栈的C语言实现
    顺序表的C、C++实现
    vim的几种模式&快捷键
    ubuntu安装discourse论坛----结合在apache服务上建立虚拟主机
    Ubuntu下使用mail命令发送邮件
    深入解读EOS源代码之——区块链内核
  • 原文地址:https://www.cnblogs.com/h--d/p/14728623.html
Copyright © 2011-2022 走看看