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>
当然,事情永远不会那么容易!
The MBG Maven plugin 包含一个目标:
这个目标不会被Maven自动执行,他可以通过以下两种方式执行。
可以在命令行通过以下命令执行:
您可以通过标准的Maven命令属性传递参数, 例如:
这条命令会使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包内。
所有配置在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}.
所有的参数都是可选的,大部分都适合的默认值。
参数 | 表达式 | 类型 | 注释 |
---|---|---|---|
configurationFile | ${mybatis.generator.configurationFile} | java.io.File | 指定配置文件的名称。
默认值: ${basedir}/src/main/resources/generatorConfig.xml |
contexts | ${mybatis.generator.contexts} | java.lang.String | 如果指定了该参数,逗号隔开的这些context会被执行。 这些指定的context必须和配置文件中 <context> 元素的 id 属性一致。 只有指定的这些contextid会被激活执行。如果没有指定该参数,所有的context都会被激活执行。 |
jdbcDriver | ${mybatis.generator.jdbcDriver} | java.lang.String | 如果您指定了 sqlScript 参数, 当连接数据库时这里的值是JDBC驱动类的权限定名称。 |
jdbcPassword | ${mybatis.generator.jdbcPassword} | java.lang.String | 如果您指定了 sqlScript 参数, 这是连接数据库的密码。 |
jdbcURL | ${mybatis.generator.jdbcURL} | java.lang.String | 如果您指定了 sqlScript 参数, 这是连接数据库的JDBC URL |
jdbcUserId | ${mybatis.generator.jdbcUserId} | java.lang.String | 如果您指定了 sqlScript 参数, 这里是连接数据库的用户id |
outputDirectory | ${mybatis.generator.outputDirectory} | java.io.File | 将放置 MBG 所生成文件的目录。
这个目录是用于当 targetProject 在配置文件中设置特殊值的"MAVEN"时使用(大小写敏感)。
默认值: ${project.build.directory}/generated-sources/mybatis-generator |
overwrite | ${mybatis.generator.overwrite} | boolean | 如果指定了该参数,如果生成的java文件存在已经同名的文件,新生成的文件会覆盖原有的文件。
如果没有指定该参数,如果存在同名的文件,MBG会给新生成的代码文件生成一个唯一的名字(例如: MyClass.java.1, MyClass.java.2 等等)。
重要: 生成器一定会自动合并或覆盖已经生成的XML文件。
默认值: false |
sqlScript | ${mybatis.generator.sqlScript} | java.lang.String | 要在生成代码之前运行的 SQL 脚本文件的位置。
如果空,不会执行任何脚本。
如果不是空,jdbcDriver,
jdbcURL 参数必须提供。
另外如果连接数据库需要认证也需要提供 jdbcUserId 和 jdbcPassword 参数。
值可以使一个文件系统的绝对路径或者是一个使用"classpath:"开头放在构建的类路径下的路径。 |
tableNames | ${mybatis.generator.tableNames} | java.lang.String | 如果指定了该参数,逗号隔开的这个表会被运行,
这些表名必须和 <table> 配置中的表面完全一致。只有指定的这些表会被执行。
如果没有指定该参数,所有的表都会被执行。
按如下方式指定表明: table schema.table catalog..table 等等。 |
verbose | ${mybatis.generator.verbose} | boolean | 如果指定该参数,执行过程会输出到控制台。 |