【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查出数据

原文地址:https://www.cnblogs.com/h--d/p/14728623.html