微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何确保我不通过两个 Maven 依赖项包含重复的传递依赖项?

如何解决如何确保我不通过两个 Maven 依赖项包含重复的传递依赖项?

我正在寻找一种方法来测试我的 pom.xml 引用中的任何显式依赖项/是否包含任何相同的传递依赖项。例如,如果 dependency-A 包含 junit.jupiter 并且 dependency-B 也包含 junit.jupiter,我想要一种查看它的方法,以便我可以将它从其中一个中排除以防止冲突。

我通过 this link 了解到您可以使用 mvn dependency:tree 基本上显示所有依赖项及其传递依赖项,但它以相当不可读的格式打印,并且通过该输出不清楚源是什么每个传递依赖是。

解决方法

请注意,如果依赖项 A 使用 junit.jupiter,依赖项 B 使用 junit.jupiter,则将仅包含这些依赖项之一。 Maven 不会两次包含相同的依赖项。

不过,可能会很棘手的是生成的版本。 Maven 采用“最近的”元素,而不是最高版本。如果你想注意你是否有版本冲突,我推荐maven执行者规则的“依赖收敛”规则。

如果您想为 junit.jupiter 选择一个版本,请在您的 POM 中向 <dependencyManagement> 添加一个条目。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。