通过Maven运行 MyBatis Generator

MyBatis Generator (MBG) 包含了一个可以集成到Maven构建的Maven插件,按照Maven的配置惯例, 将MBG集成到Maven很容易. 最简配置如下:

   <project ...>
     ...
     <build>
       ...
       <plugins>
        ...
        <plugin>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-maven-plugin</artifactId>
          <version>1.3.0</version>
        </plugin>
        ...
      </plugins>
      ...
    </build>
    ...
  </project>

当然,事情永远不会那么容易!

Maven Goal and Execution(Maven 目标和执行)

The MBG Maven plugin 包含一个目标:

  • mybatis-generator:generate

这个目标不会被Maven自动执行,他可以通过以下两种方式执行。

可以在命令行通过以下命令执行:

  • mvn mybatis-generator:generate

您可以通过标准的Maven命令属性传递参数, 例如:

  • mvn -Dmybatis.generator.overwrite=true mybatis-generator:generate

这条命令会使MBG覆盖重名的文件

在一个连续的编译环境中,您可能想让MGB作为Maven构建的一部分自动执行。 这可以通过配置自动执行的目标来实现,这种情况的例子如下:

   <project ...>
     ...
     <build>
       ...
       <plugins>
        ...
        <plugin>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-maven-plugin</artifactId>
          <version>1.3.0</version>
          <executions>
            <execution>
              <id>Generate MyBatis Artifacts</id>
              <goals>
                <goal>generate</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        ...
      </plugins>
      ...
    </build>
    ...
  </project>

MBG插件将会绑定到Maven构建的 generate-sources 阶段。 所以他会在编译步骤之前执行。 此外注意MBG目标将绑定生成Java和XML资源文件的建立,他们都将包括在生成的JAR包内。

MyBatis Generator 配置属性

所有配置在POM中的属性都可以传递到配置文件,并且可以用通常的方式使用。例如:

   <project ...>
     ...
     <properties>
       <dao.target.dir>src/main/java</dao.target.dir>
     </properties>
     ...
     <build>
       ...
       <plugins>
        ...
        <plugin>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-maven-plugin</artifactId>
          <version>1.3.0</version>
          <executions>
            <execution>
              <id>Generate MyBatis Artifacts</id>
              <goals>
                <goal>generate</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        ...
      </plugins>
      ...
    </build>
    ...
  </project>

在这种情况下,属性可以在配置文件中被访问的语法是 ${dao.target.dir}.

参考参数

所有的参数都是可选的,大部分都适合的默认值。