Mybatis 源码阅读环境搭建


前言

    mybatis源码阅读环境搭建还是比较简单的,接下来我们讲解一下如何搭建该源码阅读环境。


提示:本篇文章属于原创,请勿抄袭。

一、下载mybatis的源码

    mybatis源码下载地址:下载 mybatis 源码

在这里插入图片描述

    下载完成后,将源码解压出来,然后查看对应的 pom.xml 文件,看看当前下载的 mybatis 所依赖的父工程的版本号,因为 mybatis 还依赖了 mybatis-parent 这个项目 ,所以我们还需要将 mybatis-parent 的源码也下载下来。

在这里插入图片描述
    mybatis-parent 源码下载地址:下载 mybatis-parent 源码
在这里插入图片描述
    其实,下载完这两个源码包就可以了,但是如果要阅读 mybatis 和 spring 整合的源码,那么我们还要将 mybatis-spring 的源码也下载下来,注意:由于 mybatis-spring 也依赖了 mybatis-parent ,所以我们在下载的时候要选择对应的版本号。

    mybatis-spring 源码下载地址:下载 mybatis-spring 源码

在这里插入图片描述
    这三个包都下载完了后,将他们解压,(注意:解压后将这三个项目放在同一个文件夹下) 然后导入 IDEA。如下图所示:

在这里插入图片描述

二、编译源码

    导入 idea 后先不要着急编译,先修改几处地方:

在这里插入图片描述

    准备工作做完了,接下来就是编译了,先编译 mybatis-parent 项目 ,然后是 mybatis 项目,最后是 mybatis-spring 项目,顺序不能乱了,因为它们之间有依赖关系。分别进入每个项目对应的目录一次执行:mvn clean install -Dmaven.test.skip。 -Dmaven.test.skip的作用是跳过测试用例,这样可以快一点。

在这里插入图片描述    等到三个项目都编译完成后,就可以来创建我们的测试项目了。

三、创建测试项目

    在 IDEA 中新建一个 module ,名字叫做 spring-test ,操作如下:

在这里插入图片描述
    项目创建好了之后,打开 pom.xml 引入依赖

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>cn.yjh</groupId>
  <artifactId>spring-test</artifactId>
  <version>1.0-SNAPSHOT</version>

  <name>spring-test</name>
  <!-- FIXME change it to the project's website -->
  <url>http://www.example.com</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    <mybatis.version>3.5.7</mybatis.version><!-- 这个版本号写你下载的源码的版本号 -->
    <spring.version>5.3.1</spring.version>
    <mybatis-spring.version>2.0.6</mybatis-spring.version><!-- 这个版本号写你下载的源码的版本号 -->
    <mysql.version>8.0.22</mysql.version>
  </properties>

  <dependencies>
    <!-- spring 相关依赖 -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-aspects</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <!-- 数据库驱动 -->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>${mysql.version}</version>
    </dependency>

    <!-- mybatis 依赖 -->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>${mybatis.version}</version>
    </dependency>
    <!-- mybatis-spring 依赖-->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
      <version>${mybatis-spring.version}</version>
    </dependency>
    <!-- 日志相关依赖 -->
    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.17</version>
    </dependency>
    <dependency>
      <groupId>commons-logging</groupId>
      <artifactId>commons-logging</artifactId>
      <version>1.2</version>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>1.7.26</version>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-log4j12</artifactId>
      <version>1.7.26</version>
    </dependency>
  </dependencies>

  <build>
    <!-- 资源目录 -->
    <resources>
      <resource>
        <!-- 设定主资源目录  -->
        <directory>src/main/java</directory>

        <!-- maven default生命周期,process-resources阶段执行maven-resources-plugin插件的resources目标处理主资源目下的资源文件时,只处理如下配置中包含的资源类型 -->
        <includes>
          <include>**/*.xml</include>
        </includes>

        <!-- maven default生命周期,process-resources阶段执行maven-resources-plugin插件的resources目标处理主资源目下的资源文件时,不处理如下配置中包含的资源类型(剔除下如下配置中包含的资源类型)-->
        <excludes>
          <exclude>**/*.yaml</exclude>
        </excludes>

        <!-- maven default生命周期,process-resources阶段执行maven-resources-plugin插件的resources目标处理主资源目下的资源文件时,指定处理后的资源文件输出目录,默认是${build.outputDirectory}指定的目录-->
        <!--<targetPath>${build.outputDirectory}</targetPath> -->

        <!-- maven default生命周期,process-resources阶段执行maven-resources-plugin插件的resources目标处理主资源目下的资源文件时,是否对主资源目录开启资源过滤 -->
        <filtering>true</filtering>
      </resource>
    </resources>
  </build>

</project>



<build>
    <finalName>monitor-agent</finalName>
    <plugins>
      <!-- 指定启动类,将依赖打成外部jar包 -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <configuration>
          <archive>
            <!-- 生成的jar中,不要包含pom.xml和pom.properties这两个文件 -->
            <addMavenDescriptor>false</addMavenDescriptor>
            <!-- 清单文件 -->
            <manifest>
              <addClasspath>true</addClasspath>
              <classpathPrefix>./lib/</classpathPrefix>
              <!--<main-class>cn.yjh.MonitorAgent</main-class>-->
            </manifest>
            <!-- 给清单文件添加键值对(配置文件外置) -->
            <manifestEntries>
              <Premain-Class>cn.yjh.MonitorAgent</Premain-Class>
            </manifestEntries>
          </archive>
        </configuration>
      </plugin>
      <!-- 用于拷贝依赖到指定的目录-->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <executions>
          <execution>
            <id>copy</id>
            <phase>compile</phase>
            <goals>
              <goal>copy-dependencies</goal>
            </goals>
            <configuration>
              <outputDirectory>
                ${project.build.directory}/lib
              </outputDirectory>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

此处具体测试项目的创建过程我就不写了,想了解的可以查看:mybatis源码环境和测试项目

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值