执行父模块mvn install时,Java子模块无法找到其他模块依赖
解决Spring Boot多模块Maven编译依赖找不到的问题
问题核心原因
你的父POM中模块声明顺序错误:Maven是按照<modules>标签里的顺序依次构建模块的,当前你先声明了contract模块,再声明infrastructure模块。这就导致构建contract时,依赖的infrastructure模块还没被编译安装到本地仓库,自然找不到对应的类;而IDEA会自动扫描所有模块的源码,不受构建顺序影响,所以能正常识别。
具体解决步骤
修改父POM的模块顺序
打开项目根目录下的pom.xml,把infrastructure模块移到contract前面:<modules> <module>infrastructure</module> <module>contract</module> </modules>清理Maven缓存并重新构建
执行以下命令彻底清理并重新安装所有模块:mvn clean install验证依赖配置(可选)
确认contract模块的pom.xml中对infrastructure的依赖配置正确,确保groupId、artifactId、version和infrastructure模块的POM完全一致:<dependency> <groupId>com.catService</groupId> <artifactId>infrastructure</artifactId> <version>${project.version}</version> </dependency>
执行完以上步骤后,Maven就能正常按依赖顺序构建模块,编译错误应该会消失。
内容的提问来源于stack exchange,提问作者Marcelo
相关产品推荐
相关产品推荐

