首页 > 解决方案 > 在同一个项目中使用多个版本划分相同的依赖项名称

问题描述

我有一个 Spring 模块,它具有:1) 依赖 org.hibernate-validator 6... 2) 传递依赖 org.hibernate-validator 5... 3) vaadin 依赖的胖 jar(gwt-user) 中的超级传递依赖 hardFileCoded org.hibernate-validator <6

它们似乎不适合互换。

问题是 - 他们不冲突并提出前任。但是在编译时(它遵循坏工件直到成功重制)它们随机混乱(?)。错误版本(?)用于检索验证消息错误文本。导致打印错误,因为版本 <=5 没有 javax.validation.constraints.NotBlank.message:

对象:***,错误:{javax.validation.constraints.NotBlank.message}

而不是正确的:

对象:***,错误:不能为空

我无法真正删除某些东西等。需要以某种方式区分它们并在某些地方使用适当的版本。首先限制胖 jar 验证器永远不会退出 vaadin =)

非常感谢您提供任何挖掘方向。

标签: javamavenhibernate-validator

解决方案


  • 与往常一样,您应该寻找正常的健康依赖
  • 您可以在哪里<exclude>(maven)一些传递并在正确的版本中明确包含它们
  • 还要检查这个依赖是否真的需要
  • 在极少数情况下会看到类加载器,因此您可以为不同的消费者加载不同版本的相同类

在我的具体案例中发现胖罐子未使用并可免费删除=)感谢您的建议。


推荐阅读