解决 mybatis-generator-maven-plugin 中 overwrite 配置无效的问题

问题

使用 mybatis-generator-maven-plugin 重复生成代码时, xml 文件不会覆盖, 而是每次累加.

目的

每次生成时都会生成全新的 xml 文件并覆盖旧的

配置

pom.xml


    org.mybatis.generator
    mybatis-generator-maven-plugin
    ${mybatis-generator.version}
    
        src/main/resources/mybatis/generator.xml
        true
        true
    
    
        
            mysql
            mysql-connector-java
            6.0.6
        
        
            com.softwareloop
            mybatis-generator-lombok-plugin
            1.0-SNAPSHOT
        
    




    

    
        
        
        
        
            
            
            
        

        
            
            
        

        
        

        

        
            
        

        

        

        
            
            
        
        

build 插件中已经加入覆盖配置, 然后并没有什么卵用


    src/main/resources/mybatis/generator.xml
    true
    true

搜索

在官方 issues 中以 overwrite 为关键字进行搜索, 发现两个有价值的信息

https://github.com/mybatis/ge...
https://github.com/mybatis/ge...

第一个链接有一句话

The overwrite property is only used for generated Java files. It should not affect XML files at all. XML files should always be merged.

Have you configured a comment generator with suppressAllComment=true? If so, that would be the cause of this behavior. The XML merge won't delete old elements if the comments are removed.

原来 overwrite 配置只是为了覆盖 java 类, xml 文件是不受这个控制的

第二链接是一个 pull request, 作者添加了一个插件, 新特性刚好就是解决这个问题了, 遗憾的是这个 pr 虽然已经合入 master 分支了, 但是并没有上传到中央仓库, 1.3.7 还只是一个 SNAPSHOT 版本.

解决

自己从 https://github.com/mybatis/ge... 拉下源码 mvn install 一下就可以用了.

安装到本地仓库后还需要修改自己项目中依赖的版本号, 然后在配置文件中添加一个插件, 问题解决.

你可能感兴趣的:(mybatis)