扩展mybatis-generator-core支持Example生成目录的指定
2018-06-27 00:16
465 查看
一、问题
基于最新版的mybatis-generator-core:1.3.6生成的代码中,model和example在一个目录下,如下图,其实他们并不是一类bean。
dto和example生成在一个目录的原因是它们的生成目录都使用了
这里的targetPackage。可以依照源码来找到答案。
二、实现
我们要实现可以灵活指定example生成目录的目标,需要扩展mybatis-generator-core:1.3.6
1、扩展dtd文件
增加在context节点下增加javaExampleGenerator子节点,并且javaExampleGenerator的定义如下:
2、修改源代码
具体不详细描述,主要有以下修改点:
a、解析javaExampleGenerator
b、设置JavaExampleGeneratorConfiguration的值
c、设置example的生成目录
d、配置所有用到该example的地方对应的import package
3、上传修改好后的jar
修改pom,指定版本为1.3.6.1。
生成并上传对应的jar到本地:mvn package install -Dmaven.test.skip=true
4、引入jar包
5、修改generatorConfig.xml
在1的基础上,这样就可以在generatorConfig.xml中添加javaExampleGenerator节点。
6、运行命令生成代码
运行mvn mybatis-generator:generate -e生成代码
这样就可以了。
三、扩展
如果不配置javaExampleGenerator节点的话,那么model和example还是生成在一个目录。
希望mybatis-generator-core的官方可以早日支持上述功能,可以给开发者更多选项来支持更多配置。
附:对应的样例项目的地址:https://github.com/yangjianzhou/mybatis-generator.git
对应的generator项目的地址:https://github.com/yangjianzhou/generator
对应分支为:mybatis-generator-1.3.6.1
基于最新版的mybatis-generator-core:1.3.6生成的代码中,model和example在一个目录下,如下图,其实他们并不是一类bean。
dto和example生成在一个目录的原因是它们的生成目录都使用了
<javaModelGenerator targetPackage="com.iwill.model" targetProject="src/main/java"> <!-- 实体类 --> <property name="enableSubPackages" value="true" /> <property name="" value=""/> </javaModelGenerator>
这里的targetPackage。可以依照源码来找到答案。
二、实现
我们要实现可以灵活指定example生成目录的目标,需要扩展mybatis-generator-core:1.3.6
1、扩展dtd文件
<!ELEMENT context (property*, plugin*, commentGenerator?, (connectionFactory | jdbcConnection), javaTypeResolver?,javaModelGenerator,javaExampleGenerator?, sqlMapGenerator?, javaClientGenerator?, table+)> <!ATTLIST context id ID #REQUIRED defaultModelType CDATA #IMPLIED targetRuntime CDATA #IMPLIED introspectedColumnImpl CDATA #IMPLIED>
增加在context节点下增加javaExampleGenerator子节点,并且javaExampleGenerator的定义如下:
<!ELEMENT javaExampleGenerator (property*)> <!ATTLIST javaExampleGenerator targetPackage CDATA #REQUIRED targetProject CDATA #REQUIRED>
2、修改源代码
具体不详细描述,主要有以下修改点:
a、解析javaExampleGenerator
b、设置JavaExampleGeneratorConfiguration的值
c、设置example的生成目录
d、配置所有用到该example的地方对应的import package
3、上传修改好后的jar
修改pom,指定版本为1.3.6.1。
<artifactId>mybatis-generator-core</artifactId> <name>MyBatis Generator</name> <version>1.3.6.1</version>
生成并上传对应的jar到本地:mvn package install -Dmaven.test.skip=true
4、引入jar包
<dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.6.1</version> <scope>system</scope> <systemPath>/Users/iwill/.m2/repository/org/mybatis/generator/mybatis-generator-core/1.3.6.1/mybatis-generator-core-1.3.6.1.jar</systemPath> </dependency>
5、修改generatorConfig.xml
在1的基础上,这样就可以在generatorConfig.xml中添加javaExampleGenerator节点。
<javaExampleGenerator targetPackage="com.iwill.example" targetProject="src/main/java"> <!-- example --> <property name="enableSubPackages" value="true" /> </javaExampleGenerator>
6、运行命令生成代码
运行mvn mybatis-generator:generate -e生成代码
这样就可以了。
三、扩展
如果不配置javaExampleGenerator节点的话,那么model和example还是生成在一个目录。
希望mybatis-generator-core的官方可以早日支持上述功能,可以给开发者更多选项来支持更多配置。
附:对应的样例项目的地址:https://github.com/yangjianzhou/mybatis-generator.git
对应的generator项目的地址:https://github.com/yangjianzhou/generator
对应分支为:mybatis-generator-1.3.6.1
相关文章推荐
- mybatis-generator-core自动生成代码,支持生成中文注释、支持分页、提供BaseDao封装
- mybatis-generator 插件扩展,生成支持多种数据库的分页功能
- mybatis-generator-core自动生成do、mapping、dao 代码
- 使用generator生成mybatis基础配置代码和目录结构
- Mybatis 逆向生成工具mybatis-generator-core-1.3.2.jar的使用
- mybatis学习笔记(六)使用generator生成mybatis基础配置代码和目录结构
- MyBatis Generator 生成的example 如何使用 and or 简单混合查询
- mybatis-generator-core生成配置mybatis映射文件
- MyBatis-generator-core 生成的Dao 怎么自定义名字 (或者手动修改哪些源码可以实现)
- mybatis 之 generator插件使用 集成到了eclipse 自动生成实体,example,mapper
- mybatis-generator-core自动生成
- mybatis-generator-core生成mybatis的mapper的接口xml
- mybatis-generator-core生成代码
- mybatis-generator指定列进行自动生成代码
- Mybastic代码生成工具(使用mybatis-generator-core-1.3.2.jar生成)
- MyBatis-generator-core 生成的Dao 怎么自定义名字 (或者手动修改哪些源码可以实现)
- Mybatis Generator的model生成中文注释,支持oracle和mysql(通过实现CommentGenerator接口的方法来实现)
- mybatis逆向工程利用mybatis-generator-core自动生成代码
- mybatis 之 generator插件使用 集成到了eclipse 自动生成实体,example,mapper
- MyBatis-使用mybatis-generator-core.jar生成POJO和Mapper文件