有没有一种简单的方法来使用不同的Spring版本?

时间:2014-06-25 06:54:34

标签: spring spring-boot

我想在Spring Boot项目中使用最新的Spring 4.1.x快照。

是否有一种简单的方法来覆盖所有Spring依赖项的版本,或者我是否应该手动包含所需的所有Spring依赖项?

原因是我想在REST服务中试验Spring 4.1 @JsonView注释。

3 个答案:

答案 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>