历时一天终于解决了这个磨人的问题,先来说下我们的需求:
我们公司扫出我们的jar包有漏洞,经查明是因为版本过低,官方已经做了修复,只需要把版本提上来就可以了,原以为很简单,就在被引用项目中把版本升了,很自信(fu)的把代码交了,没想到在引用项目没生效,还是之前的低版本,各种找问题,吐血的那种,最后终于发现是依赖传递的优先级问题。贴一段官方文档的解释:
Dependency management - this allows project authors to directly specify the versions
of artifacts to be used when they are encountered in transitive dependencies
or in dependencies where no version has been specified.
大致含义是:
<dependencyManagement>的优先级,比传递过来的依赖和未指定版本的依赖要高。
至此雨过天晴,柳暗花明。只需要在我们的顶层父依赖中加入dependencyManagement 控制依赖包的版本,就可以了