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

执行jooq-codegen-maven命令时jOOQ代码生成配置错误求助

解决jOOQ 3.20.3 Maven代码生成配置错误问题

针对你遇到的配置错误,可从以下几个方向排查修复:

1. 修复数据库配置的必填项缺失

jOOQ的PostgresDatabase生成器必须指定要扫描的数据库Schema,否则无法确定要生成哪些表的代码。在<database>节点下添加<inputSchema>(PostgreSQL默认Schema为public):

<generator>
    <database>
        <name>org.jooq.meta.postgres.PostgresDatabase</name>
        <inputSchema>public</inputSchema> <!-- 核心必填项,指定要生成代码的Schema -->
        <!-- 可选:如需过滤表,可添加includes/excludes,比如只生成user开头的表 -->
        <!-- <includes>user_.*</includes> -->
    </database>
    <target>
        <packageName>com.example.domain</packageName>
        <directory>src/main/java_generated</directory>
    </target>
</generator>

2. 统一jOOQ版本,排查依赖冲突

错误提示中提到了jooq-codegen-3.20.1.xsd,但你使用的是3.20.3版本,可能存在依赖版本不一致问题:

  • 执行mvn dependency:tree查看依赖树,确认所有jOOQ相关依赖(包括jooq、jooq-codegen、jooq-meta等)的版本均为3.20.3,无旧版本混入。
  • 确保pom.xml中${jooq.version}变量确实被设置为3.20.3,可在<properties>节点显式声明:
    <properties>
        <jooq.version>3.20.3</jooq.version>
    </properties>
    

3. 调整插件配置的作用范围

你当前将配置放在了<execution>节点下,直接执行mvn jooq-codegen:generate时可能无法读取到配置。将配置移到<plugin>级别,确保全局生效:

<plugin>
    <groupId>org.jooq</groupId>
    <artifactId>jooq-codegen-maven</artifactId>
    <version>${jooq.version}</version>
    <!-- 将配置移到plugin级别,直接调用generate目标时可读取 -->
    <configuration>
        <jdbc>
            <driver>org.postgresql.Driver</driver>
            <url>jdbc:postgresql://localhost:5432/my_db</url>
            <user>my_user</user>
            <password>my_password</password>
        </jdbc>
        <generator>
            <database>
                <name>org.jooq.meta.postgres.PostgresDatabase</name>
                <inputSchema>public</inputSchema>
            </database>
            <target>
                <packageName>com.example.domain</packageName>
                <directory>src/main/java_generated</directory>
            </target>
        </generator>
    </configuration>
    <executions>
        <execution>
            <id>jooq-codegen</id>
            <phase>generate-sources</phase>
            <goals>
                <goal>generate</goal>
            </goals>
        </execution>
    </executions>
</plugin>

完成以上调整后,重新执行mvn jooq-codegen:generate即可正常生成代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 09:22:13