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

Maven多模块项目编译子模块时找不到另一子模块本地POM文件如何解决

问题修复方案

核心问题原因

  • 你的common和service1两个子模块未声明继承父模块,Maven无法识别同项目内的模块依赖关系,单独构建service1时会直接从远程中央仓库拉取common依赖,而非优先使用本地项目的common模块
  • 执行mvn clean install时未正确将common模块的jar包安装到本地Maven仓库,导致依赖解析失败

具体修复步骤

步骤1:为两个子模块添加父模块继承声明

在common和service1的pom.xml中,<modelVersion>标签后添加父模块声明:

<parent>
    <groupId>project</groupId>
    <artifactId>quotations</artifactId>
    <version>1.0</version>
    <!-- 指向父模块pom的相对路径 -->
    <relativePath>../pom.xml</relativePath>
</parent>

如果你要保留子模块service-ad的groupId,无需删除子模块的groupId配置,继承配置不影响自定义groupId

步骤2:将common模块安装到本地Maven仓库

进入项目根目录(父pom所在目录),执行命令:
mvn clean install -pl common -U
执行完成后检查本地Maven仓库的service/ad/common/1.0路径下,确认存在common-1.0.jar和common-1.0.pom文件

步骤3:调整service1构建命令

后续构建service1时,添加-am(同时构建依赖模块)参数,无需手动提前安装common模块,命令如下:
mvn compile exec:java -pl service1 -am -U

可选优化

common模块不需要打包为可执行jar的话,可以删除common pom中maven-assembly-plugin的相关配置,避免因为未配置main.class导致的打包警告。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 23:54:03