Maven多项目继承依赖版本异常:为何拉取0.0.1-SNAPSHOT?
以下是针对该问题的具体排查步骤和解决方案:
清理本地Maven缓存
Maven会默认缓存依赖元数据与jar包,旧版本缓存可能导致构建时仍拉取无效版本。执行命令强制更新依赖:mvn clean install -U若无效,手动删除本地仓库中
proja-child对应的目录(例如~/.m2/repository/com/yourgroup/proja-child),再重新执行构建。确认Artifactory部署状态
登录Artifactory确认proja-child:1.2.3是否已成功上传,检查部署日志排除上传失败的情况。同时触发仓库索引刷新,确保Maven能获取到最新版本的元数据。排查POM版本覆盖逻辑
执行mvn help:effective-pom生成项目有效POM,搜索proja-child的版本,确认实际生效的版本值。有可能子模块POM或父POM的dependencyManagement节点中,存在硬编码的0.0.1-SNAPSHOT版本,覆盖了配置的版本引用。同步IntelliJ IDEA缓存
IDE显示的有效POM可能与实际Maven构建环境不同步。执行File -> Invalidate Caches...,选择"Invalidate and Restart"重启IDE,再尝试构建。同时确认IDE使用的是项目配置的Maven实例,而非IDE自带版本。检查依赖传递中的旧版本引入
执行mvn dependency:tree生成依赖树,排查是否有其他依赖间接引入了proja-child:0.0.1-SNAPSHOT。若存在此类情况,在父POM的dependencyManagement节点中显式声明proja-child版本为1.2.3,强制锁定版本。
内容的提问来源于stack exchange,提问作者Pwnstar

