maven打包多环境配置
发布日期:2021-05-15 06:52:41 浏览次数:11 分类:精选文章

本文共 1546 字,大约阅读时间需要 5 分钟。

Maven打包过程中MyBatis Generator插件自动生成问题及解决方案

在项目使用Maven进行打包时,遇到一个令人困扰的问题:MyBatis Generator插件在打包过程中自动生成了QA类,并且将项目中自定义的DAO中的函数全部删除了。经过调研和分析,发现是由于MyBatis Generator插件默认绑定了Maven的生命周期阶段,导致其在打包过程中被触发,从而对代码进行了自动生成。

问题原因:

  • 插件默认生命周期:MyBatis Generator插件在Maven项目中是通过坐标依赖的,如果没有额外配置,默认会自动绑定到Maven的prepare-resources阶段的插件执行流程中。
  • 执行时机不对:在打包过程中,prepare-resources阶段会先处理资源文件,包括触发MyBatis Generator来生成对应的QA类模板。
  • 自动生成影响开发:如果在开发过程中已经手动编写了自定义的DAO类,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插件问题可以得到有效控制,既能利用插件自动生成功能,又能保护开发者手动编写的代码。

    上一篇:文件上传进度条提示框
    下一篇:Spring Boot上文文件过大处理

    发表评论

    最新留言

    很好
    [***.229.124.182]2025年05月02日 19时57分00秒

    关于作者

        喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
    -- 愿君每日到此一游!

    推荐文章