如何安全管理这样的问题:
在maven中,我们有两个库(版本20的A,版本30的B),分别依赖于C(1.0和1.1)。我们在目标库中得到jar hell
*--A20--C1.0
--B30--C1.1
然后我添加dependencymanagement部分并强制C版本为1.1。
*--A20--C1.1 (not C1.0)
--B30--C1.1
几个月后,我们决定将A升级到版本50。现在它依赖于C 2.0版本。但是由于dependencyManagement,项目仍然使用1.1。这是个问题
*--A50--C1.1 (not C2.0 as needed)
--B30--C1.1
问题是:是否有可能覆盖传递依赖,并且只有当传递依赖的版本与我们设置的版本匹配时,这个覆盖才会起作用?否则这个覆盖将被忽略,我们会看到一个错误(在maven-enforcer插件的帮助下,例如),我想知道我们是否有一些插件来检查这种情况?
No.
我理解你的用例,但是我在Maven中没有看到任何东西可以产生你想要的结果。