You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置pom.xml将jOOQ生成类输出到两个不同的包路径

问题根因

你当前配置失效的核心原因是:jOOQ的jooq-codegen-maven插件单组执行配置下仅支持一个<target>规则,重复声明的<target>会被后者覆盖,因此只有第二个包路径的生成规则生效。

正确配置方法

你需要为插件配置两个独立的<execution>执行节点,每个节点对应一套生成规则,分别指定不同的包路径即可,配置示例如下:

<plugin>
  <groupId>org.jooq</groupId>
  <artifactId>jooq-codegen-maven</artifactId>
  <version>3.15.3</version>
  <executions>
    <!-- 第一个包的生成配置 -->
    <execution>
      <id>generate-jooq-package-one</id>
      <phase>generate-sources</phase>
      <goals>
        <goal>generate</goal>
      </goals>
      <configuration>
        <jdbc>
          <!-- 你的数据库连接配置,共用同一份schema的话两个execution这里配一样的就行 -->
          <driver>com.mysql.cj.jdbc.Driver</driver>
          <url>jdbc:mysql://localhost:3306/your_db</url>
          <user>root</user>
          <password>your_password</password>
        </jdbc>
        <generator>
          <database>
            <inputSchema>your_schema_name</inputSchema>
            <!-- 后续拆微服务时,可以在这里加includes/excludes过滤不同包需要的表 -->
          </database>
          <target>
            <packageName>myProject.packageOne.Dao</packageName>
            <directory>target/generated-sources/jooq-package-one</directory>
          </target>
        </generator>
      </configuration>
    </execution>
    <!-- 第二个包的生成配置 -->
    <execution>
      <id>generate-jooq-package-two</id>
      <phase>generate-sources</phase>
      <goals>
        <goal>generate</goal>
      </goals>
      <configuration>
        <jdbc>
          <!-- 和上面一致的数据库连接配置即可 -->
          <driver>com.mysql.cj.jdbc.Driver</driver>
          <url>jdbc:mysql://localhost:3306/your_db</url>
          <user>root</user>
          <password>your_password</password>
        </jdbc>
        <generator>
          <database>
            <inputSchema>your_schema_name</inputSchema>
          </database>
          <target>
            <packageName>myProject.packageTwo.Dao</packageName>
            <directory>target/generated-sources/jooq-package-two</directory>
          </target>
        </generator>
      </configuration>
    </execution>
  </executions>
</plugin>

补充注意事项

  • 注意<packageName>需使用Java包标准的点分隔写法,不要使用路径斜杠,插件会自动转换为对应的文件目录结构
  • 两个<execution>的id必须唯一,避免配置冲突
  • 两个生成规则的输出目录directory建议分开设置,避免文件互相覆盖
  • 后续拆分微服务时,只需要在各自execution的<database>节点下通过<includes>、<excludes>标签过滤对应微服务需要的表,就能实现代码拆分

内容的提问来源于stack exchange,提问作者Andrew Kachalin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 19:18:01