IntelliJ构建Maven导入的多模块项目未执行jOOQ codegen插件如何解决
解决IntelliJ内置构建不触发jOOQ代码生成的方案
配置检查项
首先确认你的query-modulepom.xml中引入jooq-codegen-maven插件时,没有覆盖pluginManagement中定义的<executions>配置,只要子模块的插件配置没有单独写<executions>节点,会自动继承绑定到generate-sources阶段的规则,无需额外调整。
方案1:将Maven生成目标绑定到IntelliJ构建流程
这是最常用的方案,无需修改项目代码,仅调整IntelliJ配置即可:
- 打开IntelliJ设置,依次进入
构建、执行、部署 > 构建工具 > Maven > 运行程序 - 找到「构建前运行的Maven目标」配置区域,点击右侧加号
- 模块选择
query-module,命令输入generate-sources,确认保存 - 后续IntelliJ每次执行项目构建操作,都会先自动运行jOOQ代码生成插件
方案2:自动识别生成的源代码目录
如果生成的jOOQ代码经常提示类不存在,需手动标记目录属性:
- 在IntelliJ项目视图中找到
query-module/target/generated-sources/jooq目录 - 右键点击该目录,选择
标记目录为 > 生成的源代码根目录 - 标记后生成的代码会被自动纳入项目编译路径,无需手动刷新
可选优化:修改JPA实体后自动触发生成
如果需要避免每次修改实体后手动触发构建,可配置文件监听:
- 打开IntelliJ设置,依次进入
工具 > 文件监视器 - 点击加号新建监视器,文件类型选择Java,监控范围设置为
entities-module下的所有Java文件 - 运行程序选择系统安装的Maven,参数填写
-pl query-module generate-sources - 保存后,每次修改entities-module中的JPA实体,IntelliJ会自动执行jOOQ代码生成
内容的提问来源于stack exchange,提问作者Alejandro Abdelnur
相关产品推荐
相关产品推荐

