【问题标题】:Is there a simple way to use a different Spring version?有没有一种简单的方法来使用不同的 Spring 版本?
【发布时间】:2014-06-25 06:54:33
【问题描述】:

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

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

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

【问题讨论】:

  • 尝试在你的项目中引入 maven 并让它处理依赖关系。这将是一次性的工作,但一旦完成升级到版本将只是一次更改

标签: spring spring-boot


【解决方案1】:

如果您使用 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'
            }
        }
    }
}

【讨论】:

  • 感谢您的回答安迪!
  • 注意details.useVersion应该是it.details.useVersion
  • 谢谢,马塞尔。已更正。
  • Andy,使用最新的 Gradle 版本,我认为您必须编写 eachDependency { DependencyResolveDetails details -&gt; 而不是 eachDependency { 才能使其正常工作(由 Marcel 提议)
  • @SébastienDeleuze 谢谢。 itDependencyResolveDetails 所以 it.details 错了 it 就足够了。我已经相应地更新了答案。
【解决方案2】:

我再次需要这个并且之前的块不再工作,导致已经依赖失败。

无论如何这都有效:

configurations.all {
    resolutionStrategy {
        eachDependency { DependencyResolveDetails details ->
            if (details.requested.group == "org.springframework") {
                details.useVersion "4.1.0.RC1"
            }
        }
    }
}

【讨论】:

    【解决方案3】:

    鉴于您使用的是 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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-09
      • 2016-08-30
      • 2019-05-26
      • 2010-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多