Maven传递依赖无法引入问题(The POM for xxx is invalid)

一、背景

  应用A直接应用B,应用B依赖二方包C1、C2、C3,应用A传递依赖C1、C2、C3。现应用B升级版本,应用更新B依赖包后发现可正常引入依赖B,但传递依赖的C1、C2、C3不能引入。
  

二、问题排查

  应用根目录打印依赖树:

mvn dependency:tree>tree.txt

  应用依赖树中出现如下警告。警告显示:应用引入的依赖包无效,依赖包中传递依赖项不可用,可以通过开启debug获取更多信息。

...
[WARNING] The POM for com.xxx.yyy:zzz:jar:1.0.1-SNAPSHOT is invalid,
 transitive dependencies (if any) will not be available, enable debug
logging for more 
...

  开启debug功能,重新打印依赖树:

mvn -X dependency:tree>tree.txt

  开启maven debug功能后,警告后紧跟了一条错误信息,如下。错误原因:传递依赖项中有依赖项版本缺失。

...
[WARNING] The POM for com.xxx.yyy:zzz:jar:1.0.1-SNAPSHOT is invalid, 
transitive dependencies (if any) will not be available: 1 problem was 
encountered while building the effective model for com.xxx.yyy:zzz:jar:1.0.1-SNAPSHOT
[ERROR] 'dependencies.dependency.version' for com.xxx.mmm.nnn:jar is missing. @ 
...

三、解决方案

  重新提交应用B父POM到远程仓库,删除本地maven仓库中应用B相关依赖包,在应用A中更新maven依赖,一切OK。

你可能感兴趣的:(maven,问题)