java - 在同一个项目中使用多个版本划分相同的依赖项名称
问题描述
我有一个 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 =)
非常感谢您提供任何挖掘方向。
解决方案
- 与往常一样,您应该寻找正常的健康依赖
- 您可以在哪里
<exclude>
(maven)一些传递并在正确的版本中明确包含它们 - 还要检查这个依赖是否真的需要
- 在极少数情况下会看到类加载器,因此您可以为不同的消费者加载不同版本的相同类
在我的具体案例中发现胖罐子未使用并可免费删除=)感谢您的建议。
推荐阅读
- node.js - 如何限制使用 Amazon S3 presignedUrl 向当前用户发布文件
- designer - 在我的系统中的业务对象 Universe 设计器工具中所做的更改不会反映在其他用户的业务对象中
- html - React 获取组件实例的属性
- python - 如何得出结论?
- stm32 - mpu6050&dmp和stm32h7的使用
- apache-kafka-mirrormaker - 使用 MirrorMaker2 重新同步偏移量
- c# - 使用 VMSS 代理进行自动化测试
- google-chrome-extension - 当我开始使用 chrome.tabCapture.capture(
- google-sheets-formula - 我正在尝试将大型(14k)数据从网页收集到我的谷歌表格。IMPORTXML 返回我“超过数据量”的消息。我怎么能通过它?
- android - 尝试从 Godot 导出到 Android 时出错