Spring、Spring Security与Spring WS匹配版本查询及依赖冲突解决
Spring、Spring WS与Spring Security兼容版本匹配及冲突解决
一、兼容版本组合
要解决跨项目的Spring版本冲突,必须保证Spring核心、Spring Security、Spring WS三者的版本完全兼容,结合你的场景,推荐以下匹配版本:
- Spring Core(含spring-web、spring-expression等核心组件):5.0.9.RELEASE
- Spring WS:3.0.4.RELEASE
- Spring Security:5.0.9.RELEASE
版本匹配依据
- Spring WS 3.0.x系列官方兼容Spring 5.0.x和5.1.x,但为了和第一个项目的Spring版本完全对齐,统一使用5.0.9.RELEASE可彻底避免war包嵌套带来的版本冲突。
- Spring Security的版本与Spring Core版本强绑定,5.0.x系列的Spring Security完美适配Spring 5.0.x核心,不会引入不兼容的依赖。
二、解决Maven Enforcer校验失败问题
第二个项目切换到Spring 5.0.9.RELEASE后无法通过Enforcer校验,本质是Spring Security依赖会自动传递引入更高版本的Spring组件。通过Maven的dependencyManagement强制锁定所有Spring相关依赖版本即可解决:
<dependencyManagement> <dependencies> <!-- 锁定所有Spring核心组件版本 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>5.0.9.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>5.0.9.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-expression</artifactId> <version>5.0.9.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.0.9.RELEASE</version> </dependency> <!-- 锁定Spring Security版本 --> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-core</artifactId> <version>5.0.9.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-web</artifactId> <version>5.0.9.RELEASE</version> </dependency> <!-- 锁定Spring WS版本 --> <dependency> <groupId>org.springframework.ws</groupId> <artifactId>spring-ws-core</artifactId> <version>3.0.4.RELEASE</version> </dependency> </dependencies> </dependencyManagement>
这个配置会强制所有依赖(包括传递依赖)使用指定版本,既满足Enforcer的版本校验规则,又不会出现spring-expression版本缺失或不一致导致的功能异常。
三、冲突验证
配置完成后,执行以下命令检查依赖树,确认所有Spring相关组件版本统一:
mvn dependency:tree
确保输出中没有出现Spring 5.1.1.RELEASE的依赖,所有Spring核心组件、Spring Security都是5.0.9.RELEASE,Spring WS保持3.0.4.RELEASE,此时再部署即可解决“存在多个spring_web片段”的冲突问题。
内容的提问来源于stack exchange,提问作者lovrodoe
相关产品推荐
相关产品推荐

