今天發現mybatis generator maven plugin在重複生成的時候xml文件只會merge,不會覆蓋。git
明明在pom.xml中配置了以下:github
<configuration> <configurationFile>src/main/resources/mybatis/generatorConfig.xml</configurationFile> <verbose>true</verbose> <overwrite>true</overwrite> </configuration>
去github上查找與overwrite相關的issue,找到了這個提交。mybatis
上面的意思是:當你取消了全部註釋,你在重複運行generator時在mapper.xml中會出現重複的元素。而且這個plugin能夠解決這個問題,版本是1.3.7app
去查看generatorConfiguration,確實配置了取消生成註釋。maven
<!-- 配置生成器 --> <generatorConfiguration> <properties resource="mybatis/jdbc.properties"/> <context id="MyBatis" targetRuntime="MyBatis3" defaultModelType="flat"> <!-- 不生成註釋 --> <commentGenerator> <property name="suppressAllComments" value="true"/> </commentGenerator> ... ... <generatorConfiguration>
那怎麼既想取消註釋又想覆蓋XML文件生成呢?答案就是上面說的使用UnmergeableXmlMappersPluginspa
在<context>下增長一個<plugin>code
<!-- 配置生成器 --> <generatorConfiguration> <properties resource="mybatis/jdbc.properties"/> <context id="MyBatis" targetRuntime="MyBatis3" defaultModelType="flat"> <!--覆蓋生成XML文件--> <plugin type="org.mybatis.generator.plugins.UnmergeableXmlMappersPlugin" /> <!-- 不生成註釋 --> <commentGenerator> <property name="suppressAllComments" value="true"/> </commentGenerator> ... ... <generatorConfiguration>
GitHub地址:https://github.com/syoukaihou/sbsmxml