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

使用jOOQ 3.19.10编译报错:无法访问java.util.concurrent.Flow

问题

使用Java 17构建代码,已在pom.xml中指定maven.compiler.source和maven.compiler.target为17,且验证过JAVA_HOME环境变量是C:\Program Files\Java\jdk-17.0.11+9。但引入jOOQ 3.19.10依赖后,Maven模块构建失败,提示无法访问java.util.concurrent.Flow;换成jOOQ 3.14版本则无此问题,当前Maven版本为3.9.6。

Maven构建首行命令:

"C:\Program Files\Java\jdk-17.0.11+9\bin\java.exe" -Dmaven

pom.xml相关配置片段:

<properties>
    <maven.compiler.source>17</maven.compiler.source>
    <maven.compiler.target>17</maven.compiler.target>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependency>
    <groupId>org.jooq</groupId>
    <artifactId>jooq</artifactId>
    <version>3.19.10</version>
</dependency>

解决方案

1. 升级maven-compiler-plugin版本

旧版maven-compiler-plugin对Java 17的模块系统支持不足,导致无法正确识别java.util.concurrent.Flow(该类属于Java 9+的java.base模块)。在pom.xml中添加或更新插件配置:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.12.1</version> <!-- 可使用更高的兼容Java 17的版本 -->
            <configuration>
                <!-- 推荐用release参数替代source/target,确保编译输出与Java 17完全兼容 -->
                <release>17</release>
                <source>17</source>
                <target>17</target>
            </configuration>
        </plugin>
    </plugins>
</build>

2. 清理Maven缓存

缓存的依赖包可能损坏,执行以下命令清理后重新构建:

mvn clean install -U

3. 适配JPMS模块系统(若启用)

如果项目使用了JPMS模块系统(存在module-info.java),需在其中声明对jOOQ模块的依赖:

module your.module.name {
    requires org.jooq;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 02:57:18