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

Maven编译报错:module not found: vertx.core 求助

解决Maven编译JPMS模块时找不到vertx.core的问题

你的问题核心在于Maven编译器插件版本过低,对Java 9+模块系统(JPMS)支持不足,结合你的项目场景,我整理了几个关键修复步骤:

1. 升级maven-compiler-plugin到支持Java 10的版本

你当前使用的maven-compiler-plugin 3.5.1是2016年的版本,它对Java 9及以后的模块系统兼容度很差。至少需要升级到3.8.0及以上版本(该版本开始全面支持JPMS)。

推荐在根pom的<pluginManagement>中统一配置插件版本,让所有子模块继承:

<project>
    <!-- 原有配置... -->
    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <!-- 升级到适配Java 10的稳定版本 -->
                    <version>3.8.1</version>
                    <configuration>
                        <source>${java.version}</source>
                        <target>${java.version}</target>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>
</project>

之后Utils子模块的pom.xml里只需声明插件,无需重复写版本和配置:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
        </plugin>
    </plugins>
</build>

2. 确认Vert.x自动模块的名称兼容性

Vert.x 3.5.0的vertx-core jar没有内置module-info.java,会被Java编译器当作自动模块。自动模块的名称由jar文件名推导而来(去掉版本号,连字符替换为点),也就是vertx.core,这和你在module-info.java中写的一致,所以这部分无需修改。

3. 重新编译验证

完成配置修改后,先清理并安装父模块到本地仓库:

mvn clean install -N

(-N参数表示仅处理当前项目,不触发子模块构建)

然后执行子模块编译:

mvn clean compile

这样应该就能解决编译时找不到vertx.core模块的问题了。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 07:29:23