这个问题的发生是由于树状工程结构中某个工程中的pom.xml中定义的”project -> version”或者”parent project -> version”设置的不对导致的。解决的原则是:本层的parent project version一定要和上一层的project version完全对应,无论是固定的版本号还是变量,都必须完全保持一致。否则maven在build时找不到该version,就会去local/remote repository里面去找。如果能找到,你恰好可以编译过去。但是一般来说,即使能够找到,它也不是你想要的,所以会存在潜在的危险。
有一个最容易犯错误的情况是:parent层级的pom.xml里面没有定义version,而child层级的pom.xml中指定了parent version,这时maven build就会报Can’t find parent错误。解决的方法如上所述:在parent层级的pom.xml里面加入version并且和child层级中pom.xml里指定的parent version保持一致。