Maven多模块构建报错:package does not exist问题求助
问题排查与解决步骤
1. 调整根pom的模块构建顺序
Maven执行根目录全量构建时,会优先参考<modules>标签的顺序,若discord-bot排在core之前,可能出现core未完成构建安装就开始编译discord-bot的情况——手动逐个安装时先处理core,所以不会触发这个问题。
修改根pom的<modules>,确保core排在所有依赖它的模块之前:
<modules> <module>core</module> <module>backend</module> <module>client-api</module> <module>discord-bot</module> <module>application</module> </modules>
2. 确认core模块的打包类型
打开core模块的pom.xml,检查<packaging>是否为jar。若设置为pom,Maven不会生成可被依赖的jar包,其他模块自然找不到对应的package。正确配置应为:
<packaging>jar</packaging>
3. 核对discord-bot中core的依赖坐标
确保discord-bot的pom.xml里,core依赖的groupId、artifactId、version与core模块自身的配置完全一致,无拼写或版本号错误。例如:
core模块pom的基础配置:
<groupId>net.dragoncoding.organizer</groupId> <artifactId>core</artifactId> <version>1.0.0-SNAPSHOT</version>
discord-bot中的依赖声明需完全匹配:
<dependency> <groupId>net.dragoncoding.organizer</groupId> <artifactId>core</artifactId> <version>1.0.0-SNAPSHOT</version> </dependency>
4. 单独验证core模块的构建
在项目根目录执行mvn clean install -pl core -am,单独构建core模块。若这一步失败,说明core自身编译存在问题(IDE缓存可能掩盖了错误),需先修复core的编译错误后再执行全量构建。
5. 清理本地Maven仓库缓存
若本地仓库中core的jar包损坏,可能导致依赖找不到。删除本地仓库中~/.m2/repository/net/dragoncoding/organizer/core/目录,再重新执行根目录的mvn clean install。
内容的提问来源于stack exchange,提问作者DragonCoder
相关产品推荐
相关产品推荐

