本文共 1546 字,大约阅读时间需要 5 分钟。
在项目使用Maven进行打包时,遇到一个令人困扰的问题:MyBatis Generator插件在打包过程中自动生成了QA类,并且将项目中自定义的DAO中的函数全部删除了。经过调研和分析,发现是由于MyBatis Generator插件默认绑定了Maven的生命周期阶段,导致其在打包过程中被触发,从而对代码进行了自动生成。
prepare-resources
阶段的插件执行流程中。prepare-resources
阶段会先处理资源文件,包括触发MyBatis Generator来生成对应的QA类模板。为了避免上述问题,需要对MyBatis Generator插件在Maven项目中的生命周期进行手动配置,使其不自动触发生成功能。
修改POM文件中的插件配置:
在项目的POM文件中找到MyBatis Generator插件的配置部分,添加< executes> </executes>
标签,以手动指定插件的执行阶段。org.mybatis.generator mybatis-generator-maven-plugin ${mybatis.generator.version} ${project.artifactId} prepare-resources generate ...
配置说明:
<phase>prepare-resources</phase>
:指定插件执行的阶段。prepare-resources
是Maven的一个内置阶段,会在process-resources
之前执行,可以确保资源文件准备完成后再触发插件执行。<goals>
:根据需要添加需要执行的目标,通常都是generate
目标来触发代码生成功能。通过以上配置,可以使得MyBatis Generator插件在适当的时间触发代码生成,而不会对开发者手动编写的自定义代码造成破坏。
<configuration>
标签中添加多个<echo>... [1|2]</echo>
环境信息,插件会根据环境信息自动生成对应的代码。prepare-resources
阶段仍然无法满足需求,可以尝试绑定到build
阶段,但需要注意build
阶段的插件执行会影响项目最终输出。通过以上方法,Maven打包过程中的MyBatis Generator插件问题可以得到有效控制,既能利用插件自动生成功能,又能保护开发者手动编写的代码。
转载地址:http://ygbxz.baihongyu.com/