记录 maven 诡异的引入的依赖的依赖与实际版本不一致问题
-
本地 windows 开发环境使用 maven 3.8.1,Intellij IDEA 2022.1.2 (#IU-221.5787.30)
-
现象:
使用 hibernate-validator 引入依赖:
<dependency> <groupId>org.hibernate.validator</groupId> <artifactId>hibernate-validator</artifactId> <version>7.0.5.Final</version> </dependency>在 maven 仓库官网,详情页 ,显示 Compile Dependencies,包含 jakarta.validation-api 依赖,版本是 3.0.0:
Group / Artifact Version jakarta.validation » jakarta.validation-api 3.0.0
而 IDEA 中 maven 依赖却显示版本是 2.0.2:

由于依赖 2.0.2 版本的 jakarta.validation-api jar无法使 7.0.X版本的 hibernate-validator 运行起来,需要 3.0.0及以上版本的 jakarta.validation-api 。
-
问题进一步深挖
选中 jakarta.validation-api.jar ,跳到源码片段:
<dependency> <groupId>jakarta.validation</groupId> <artifactId>jakarta.validation-api</artifactId> </dependency>按住 Ctrl 键,点击左键,进入依赖的 jakarta.validation-api pom,发现确实是 3.0.0 版本
<groupId>jakarta.validation</groupId> <artifactId>jakarta.validation-api</artifactId> <version>3.0.0</version> <packaging>jar</packaging> <name>Jakarta Bean Validation API</name> <url>https://beanvalidation.org</url> -
考虑可能是 maven 的问题,升级 maven 版本至 3.8.6,问题依旧存在
-
大无语事件,暂时没有发现原因,未能解决。临时替代方案是手动重新引入高版本的 jakarta.validation-api 依赖:
<dependency> <groupId>jakarta.validation</groupId> <artifactId>jakarta.validation-api</artifactId> <version>3.0.2</version> </dependency>
Maven 引入依赖版本不一致问题解析
博客讲述了在Windows环境下使用IntelliJ IDEA和Maven时遇到的一个问题:尽管在maven仓库中显示hibernate-validator依赖的jakarta.validation-api版本为3.0.0,但在IDEA中实际加载的版本却是2.0.2。作者尝试升级Maven版本至3.8.6,问题依然存在。为了解决这个问题,作者选择了手动引入jakarta.validation-api的3.0.2版本作为临时解决方案。
1172

被折叠的 条评论
为什么被折叠?



