首页 > 解决方案 > 如何避免从自冲突模块手动重新导入传递依赖

问题描述

一个模块有一个糟糕的依赖关系,它依赖于同一个库的多个版本。该库不被任何其他依赖项使用。如果我只是排除库来解决版本冲突,那么我显然需要在每个子模块中导入库。这不方便且容易出错。是否可以排除特定版本?我知道排除标签不支持版本,但也许有变化。

标签: maventransitive-dependencymaven-enforcer-plugin

解决方案


用于<dependencyManagement>设置库的版本。这可以在父 pom 中完成。此版本将覆盖您的依赖关系树中遇到的所有版本。

它还将满足强制插件的“依赖收敛”规则。

请注意,Maven 将始终只加载同一个库的一个版本——如果它找到不同的版本,它会使用依赖解析机制。不过,使用dependencyManagement 自己解决冲突要好得多。


推荐阅读