添加POM构件依赖后mvn clean install报错:存在重复类资源
解决Jakarta与javax Validation API依赖冲突的方法
你遇到的是Jakarta Validation API(jakarta.validation:jakarta.validation-api)和旧版Java Validation API(javax.validation:validation-api)的类重复冲突问题,这是Java EE迁移到Jakarta EE后常见的依赖冲突场景,以下是几种可行的解决方式:
精准排除冲突依赖
先执行mvn dependency:tree命令,定位到引入javax.validation:validation-api:2.0.1.Final的上游依赖,然后在该依赖的配置中添加排除规则,示例如下:<dependency> <groupId>上游依赖的groupId</groupId> <artifactId>上游依赖的artifactId</artifactId> <version>对应版本号</version> <exclusions> <exclusion> <groupId>javax.validation</groupId> <artifactId>validation-api</artifactId> </exclusion> </exclusions> </dependency>这样就能移除旧版的javax.validation依赖,只保留你添加的jakarta版本。
统一依赖版本管理
在pom.xml的<dependencyManagement>节点中统一指定validation-api的版本为jakarta的2.0.2,强制所有依赖使用该版本,避免引入旧版:<dependencyManagement> <dependencies> <dependency> <groupId>jakarta.validation</groupId> <artifactId>jakarta.validation-api</artifactId> <version>2.0.2</version> </dependency> </dependencies> </dependencyManagement>替换旧版依赖(如果适用)
如果你的项目是基于Jakarta EE的,检查是否有其他依赖还在使用javax.validation相关包,尝试将它们替换为对应的Jakarta版本,从根源上避免混合javax和jakarta的依赖。
内容的提问来源于stack exchange,提问作者user3903418
相关产品推荐
相关产品推荐

