在同一项目中将相同的依赖项名称与多个版本进行分区

partion same dependency name with muiltiple versions in the same project

我有一个 Spring 模块有: 1) depedency org.hibernate-validator 6... 2) 传递依赖性 org.hibernate-validator 5... 3) 在 vaadin 依赖的 fat jar(gwt-user) 中使用 org.hibernate-validator <6

进行超级传递依赖 hardFileCoded

它们似乎无法互换。

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

Object: ***, error: {javax.validation.constraints.NotBlank.message}

而不是正确的:

Object: ***, error: must not be blank

我真的不能删除某些东西等等。 需要以某种方式区分它们并在某些地方使用适当的版本。 首先限制那个胖罐子验证器永远不会离开 vaadin =)

非常感谢任何挖掘方向。

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

在我的具体案例中发现 fat jar 未使用并且可以随意删除 =) 感谢推荐。