我想在Spring Boot项目中使用最新的Spring 4.1.x快照。
是否有一种简单的方法来覆盖所有Spring依赖项的版本,或者我是否应该手动包含所需的所有Spring依赖项?
原因是我想在REST服务中试验Spring 4.1 @JsonView注释。
答案 0 :(得分:9)
如果您使用Maven并将spring-boot-starter-parent
作为父级,则可以覆盖pom中的spring.version
属性以更改您正在使用的Spring版本:
<properties>
<spring.version>4.1.0.BUILD-SNAPSHOT</spring.version>
</properties>
如果您正在使用Gradle,则可以通过使用解析策略覆盖org.springframework
组ID的所有内容版本来实现相同的效果:
configurations.all {
resolutionStrategy {
eachDependency {
if (it.requested.group == 'org.springframework') {
it.useVersion '4.1.0.BUILD-SNAPSHOT'
}
}
}
}
答案 1 :(得分:2)
我再次需要这个,之前的块不再起作用,导致已经失败的依赖。
无论如何这都有效:
configurations.all {
resolutionStrategy {
eachDependency { DependencyResolveDetails details ->
if (details.requested.group == "org.springframework") {
details.useVersion "4.1.0.RC1"
}
}
}
}
答案 2 :(得分:1)
鉴于您正在使用Spring Boot,我猜测您必须使用Maven或Gradle,但您不会说出哪些。对于Maven,你可以做几件事。
首先,您可以在pom.xml中强制使用Spring版本:
<properties>
<spring.version>4.1.0.BUILD-SNAPSHOT</spring.version>
</properties>
应该覆盖spring-boot-dependencies
项目中定义的属性。
要获得更细粒度的控制,请使用依赖关系管理:
<dependencyManagement>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.1.0.BUILD-SNAPSHOT</version>
</dependency>
</dependencyManagement>