代码结构大致是A是最顶级模块,B和C是A的子模块,D是C的子模块,B依赖D,ABCD都是0.0.1-SNAPSHOT版本。
在B的pom文件里,有D和C的依赖引用。
更新D的接口(添加了一个参数,变成2个参数)后,重新install D的模块,然后重新install C模块,更新B的引用,发现B对D引用显示报错飘红,提示要求加一个参数;但是加了参数之后,也就是跟D的最新接口一致了,也是两个参数了;结果install的时候报参数个数不对,提示应该为之前的那个一个参数的接口。改为之前的,虽然飘红,但是能install通过。
很奇怪,尝试各种清理更新,都无济于事。最后发现把B的pom文件里的C依赖去掉,重新install D,然后将B对D的引用改为最新接口格式,install B也可以通过。此外,B对D的依赖,必须添加版本号,否则报引用错误。
为什么存在父级,会更新不到子级的最新信息,一直没搞明白,哪位大神知道的话,麻烦告知下。
子类必须带版本号,我感觉应该是在pom依赖中,如果父级或者全局没有声明版本,如果是同级模块,默认使用当前项目的版本;但是比该模块级别低的模块,则必须写明版本。