maven项目,实际包版本号和pom.xml配置的版本号不相符

问题描述

a->c[4.0.6]
a模块中通过maven导入了c模块,并指定它的版本为4.0.6

b->a->c[4.0.1] ???
b模块通过maven导入了a模块,结果b模块中的c是4.0.1的版本....

问题出现的环境背景及自己尝试过哪些方法

我在对接阿里云短信,a短信模块导入了阿里云的SDK包(c)版本是[4.0.6]
b业务模块导入了a短信模块,b模块下的c包版本是[4.0.1]怎么改都是4.0.1.....
于是我查看了maven的调用树

  • a短信模块

clipboard.png

  • b业务模块

clipboard.png

a模块只被b模块调用.没有其他模块的影响. b模块没有其他模块是和c模块有关联的.

相关代码

实例的代码太多太杂就不展示了.

我期待的结果

希望能知道有那种可能的错误会导致这样的结果.感谢~

阅读 5.2k
1 个回答
  1. 你这个是 maven 问题,至少是 Java 问题,跑到 docker 板块提问,所以迟迟得不到答复;哈哈哈
  2. 关于 maven 依赖解析的2条规则:

    1. Nearest First;(最近优先)
    2. If distance is the same, the one who declare first wins;(其次是先引入优先)

所以你可以看看依赖的顺序,也就是 dependency 的顺序。
参考:https://blog.csdn.net/lonelym...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进